随着迁移到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
命令。