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

Kafka Connect HDFS ignores flush.size in Confluent v4.0

随着迁移到 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 个事件。我想念什么?为什么我会看到这种新行为?

当消息的架构更改时,文件将执行此操作。

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

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