是否可以编写kafka使用者批处理以为每个窗口创建输出到文件

时间:2018-11-27 22:58:28

标签: apache-kafka kafka-consumer-api

是否可以编写kafka消费者cmd / batch文件以将数据输出到每个窗口的文件中。假设每个窗口有5分钟。每5分钟要创建一个文件。

在kafka中,我们可以将窗口设置为最多30分钟吗?

1 个答案:

答案 0 :(得分:0)

  

每5分钟要创建一个文件

您可以使用HDFS Kafka Connector(作为Confluent Platform的一部分提供)来执行此操作。不需要安装Hadoop即可使用它。

以下是相关的configuration details for the HDFS Connector

tasks.max=1
topics=some_topic

connector.class=io.confluent.connect.hdfs.HdfsSinkConnector

# set to the local filesystem
store.url=file:///path/to/output-dir

# write a file every 5 minutes, one file per-partition
rotate.schedule.interval.ms=300000

# write out JSON-formatted data
format.class=io.confluent.connect.hdfs.json.JsonFormat

More details on Kafka Connect

否则,您需要一个Kafka Streams流程来处理5分钟的数据,然后输出到新主题。通过该主题,您可以让新的使用者写入控制台或文件。

  

我们可以将窗口设置为最多30分钟吗?

您可以将主题保留时间设置为30分钟。上面的旋转间隔可以任意设置。