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.0,kafka-connect-hdfs 的 flush.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