Kafka Connect HDFS 在 Confluent v4.0 中忽略了 flush.size

Posted

技术标签:

【中文标题】Kafka Connect HDFS 在 Confluent v4.0 中忽略了 flush.size【英文标题】:Kafka Connect HDFS ignores flush.size in Confluent v4.0 【发布时间】:2018-07-08 16:36:14 【问题描述】:

随着迁移到 Confluent v4.0kafka-connect-hdfsflush.size 不再适合我。它适用于 Confluent v3.x

这是当前的配置文件:

name=my-job-name
connector.class=io.confluent.connect.hdfs.HdfsSinkConnector
tasks.max=1

topics=my-topic-name

hdfs.url=hdfs://my/path
hadoop.conf.dir=/etc/hadoop/conf/
flush.size=50000
#rotate.interval.ms=80000

当我开始这项工作时,它会在 HDFS 中生成数百万个小型 avro 文件。

-rw-r--r--   ...     43.8 K 2018-01-29 13:26 /my/path/topics/my-topic-name/partition=5/my-topic-name+5+0000000000+0000000143.avro
-rw-r--r--   ...      3.7 K 2018-01-29 13:26 /my/path/topics/my-topic-name/partition=5/my-topic-name+5+0000000144+0000000149.avro
...

从偏移量可以看出,某些文件仅包含 6 个事件。我想念什么?为什么我会看到这种新行为?

【问题讨论】:

两个文件的schema是否相同? 不,他们不是。我在上游 kafka 流工作中犯了一个错误。非常感谢您指出。 【参考方案1】:

当消息的架构发生变化时,文件将执行此操作。

要检查模式消息(如果使用 Avro),您可以使用消息在文件中的偏移量直接从 Kafka 获取消息的模式 ID,然后点击模式注册表 GET /schemas/(schema-id)

或者从 HDFS 下载文件,然后使用 avro-tools getschema 命令。

【讨论】:

以上是关于Kafka Connect HDFS 在 Confluent v4.0 中忽略了 flush.size的主要内容,如果未能解决你的问题,请参考以下文章

Kafka 到 Elasticsearch、带有 Logstash 的 HDFS 或 Kafka Streams/Connect

使用JsonConverter的Kafka Connect HDFS Sink for JSON格式

Kafka Connect:如何使用 hdfs sink 连接器将 Kafka 主题的 protobuf 数据发送到 HDFS?

Kafka Connect HDFS 在 Confluent v4.0 中忽略了 flush.size

Kafka Connect 可以成为我的 Hadoop 集群的一部分吗?

使用kafka connect,将数据批量写到hdfs完整过程