Kafka Connect HDFS 在 Confluent v4.0 中忽略 flush.size
Kafka Connect HDFS ignores flush.size in Confluent v4.0
随着迁移到 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 个事件。我想念什么?为什么我会看到这种新行为?
当消息的架构更改时,文件将执行此操作。
要检查模式消息(如果使用 Avro),您可以直接从 Kafka 使用文件中的偏移量获取消息的模式 ID,然后点击模式注册表 GET /schemas/(schema-id)
。
或者从 HDFS 下载文件,然后使用 avro-tools getschema
命令。
随着迁移到 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 个事件。我想念什么?为什么我会看到这种新行为?
当消息的架构更改时,文件将执行此操作。
要检查模式消息(如果使用 Avro),您可以直接从 Kafka 使用文件中的偏移量获取消息的模式 ID,然后点击模式注册表 GET /schemas/(schema-id)
。
或者从 HDFS 下载文件,然后使用 avro-tools getschema
命令。