ConfluentHDFS连接器:当没有hdfs文件时,如何读取最新的偏移量?

2j4z5cfb  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(392)

我们有一个producer应用程序,现在已经运行了几天,正在向topica生成数据。我们希望启动hdfs连接器从topica读取数据,而不是从偏移量0读取数据(因为这将导致巨大的延迟)。我们想从最新的偏移量开始(topica一直有新的数据进入)。
1) 既然连接器从hdfs中的主题名获取偏移量信息,那么既然hdfs中没有文件,我们如何读取最新的偏移量呢?
2) 我能想到的一个方法是手动创建虚拟文件,每个分区都有最新的偏移量,但我们这里讨论的是topica中的60个分区,那么有没有更优雅的方法呢?

to94eoyn

to94eoyn1#

可以设置此属性以使连接的使用者组从主题中最新的可用偏移量开始

consumer.auto.offset.reset=latest

尽管,connect通常很快就能赶上一个大集群和每个分区一个任务,所以从最早的开始应该不会那么糟糕

aiazj4mn

aiazj4mn2#

noname,hdfs连接器在hdfs中没有文件名的情况下重置为最新提交的偏移量的能力最近被添加。
您可以在4.0.1或4.1.0及更高版本中找到它。
hdfs连接器是一个接收器连接器,它自己管理用户偏移量。这样做的目的是在将文件导出到hdfs时实现一次语义。在上述版本之前的版本中,如果连接器在hdfs中找不到任何文件,它将从主题的最早偏移量开始使用,而不考虑任何使用者设置。
您可以在这里找到相关的更改,这些更改现在允许连接器在hdfs中没有文件的情况下查询提交的偏移量:
https://github.com/confluentinc/kafka-connect-hdfs/pull/299 以及https://github.com/confluentinc/kafka-connect-hdfs/pull/305

相关问题