汇流HDFS连接器:当没有hdfs文件时,如何从最新的偏移量中读取?

时间:2018-06-11 23:26:47

标签: hadoop apache-kafka hdfs apache-kafka-connect confluent

我们有一个生产者应用程序,它现在运行了几天,并且正在为topicA生成数据。我们想要启动hdfs连接器以从topicA读取但不从偏移0读取(因为这将导致巨大的延迟)。我们希望从最新偏移开始(有新的数据一直进入topicA)。

1)由于连接器从hdfs中的主题名称获取偏移信息,我们怎样才能读取最新的偏移量,因为hdfs中没有文件?

2)我能想到的一个选项是为每个分区手动创建具有最新偏移量的虚拟文件,但是我们在topicA中讨论了60个分区,那么有更优雅的方法吗?

2 个答案:

答案 0 :(得分:1)

您可以设置此属性以使您的使用者连接组从主题

中的最新可用偏移量开始
consumer.auto.offset.reset=latest

虽然,Connect通常会很快赶上一个大型集群,每个分区有一个任务,所以从最早开始就不应该那么糟糕

答案 1 :(得分:1)

NoName,最近添加了HDFS连接器在HDFS中没有文件名时重置为最新提交的偏移量的能力。

您可以在4.0.1或4.1.0及更高版本中找到它。

HDFS连接器是一个接收器连接器,用于管理消费者偏移本身。它的目的是为了在将文件导出到HDFS时实现一次性语义。在上述版本之前的版本中,如果连接器在HDFS中找不到任何文件,它将从主题的最早偏移量开始消耗,而不管任何消费者设置。

您可能会发现相关更改现在允许连接器在HDFS中没有文件的情况下查询已提交的偏移量:

https://github.com/confluentinc/kafka-connect-hdfs/pull/299https://github.com/confluentinc/kafka-connect-hdfs/pull/305