【发布时间】:2019-10-01 13:36:26
【问题描述】:
你知道这是否可能,如果是的话,使用 kafka 与 kafka 连接确保向 hdfs 准确交付一次的最佳方法是什么?
我知道 Kafka 连接尝试在“'__consumer_offsets”中为其消费者组找到偏移量,但我需要额外检查,因为重复是不可接受的
【问题讨论】:
标签: hadoop apache-kafka apache-kafka-connect
你知道这是否可能,如果是的话,使用 kafka 与 kafka 连接确保向 hdfs 准确交付一次的最佳方法是什么?
我知道 Kafka 连接尝试在“'__consumer_offsets”中为其消费者组找到偏移量,但我需要额外检查,因为重复是不可接受的
【问题讨论】:
标签: hadoop apache-kafka apache-kafka-connect
HDFS Connect 已经声称通过在 HDFS 中使用预写日志仅支持一次。当重新启动连接时,它实际上会检查该日志,除非最近更改了逻辑,而不是偏移量主题
【讨论】:
当连接器将文件写入 HDFS 时,它首先写入临时文件,WAL 进行重播,然后将临时文件重命名为最终文件。这个最终文件的命名具有该文件中存在的偏移量。因此,当连接启动时,它会在 HDFS 上查找并找到最新提交的偏移量,该偏移量应保证仅交付一次。如果在 hdfs 中找不到偏移量,那么它会让消费者偏移重置策略。请查看 https://github.com/confluentinc/kafka-connect-hdfs/blob/master/src/main/java/io/confluent/connect/hdfs/DataWriter.java 和 https://github.com/confluentinc/kafka-connect-hdfs/blob/master/src/main/java/io/confluent/connect/hdfs/TopicPartitionWriter.java 以了解更多信息
【讨论】: