hadoop - 合流 HDFS 连接器 : How can I read from the latest offset when there are no hdfs files?

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

我们有一个运行了几天的生产者应用程序,它正在为 topicA 生产数据。我们想启动 hdfs 连接器以从 topicA 读取而不是从偏移量 0 读取(因为这将导致巨大的滞后)。我们想从最新偏移量开始(一直有新数据进入 topicA)。

1) 由于连接器从 hdfs 中的主题名称获取偏移量信息,我们如何从最新的偏移量中读取,因为 hdfs 中不存在任何文件?

2) 我能想到的一个选项是为每个分区手动创建具有最新偏移量的虚拟文件,但我们在这里讨论的是 topicA 中的 60 个分区,所以有没有更优雅的方法来做到这一点?

最佳答案

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

关于hadoop - 合流 HDFS 连接器 : How can I read from the latest offset when there are no hdfs files?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50807357/

相关文章:

java - 如何将 Avro 序列化与 Spring-Kafka 结合使用

ubuntu - 具有绑定(bind)多个 IP 地址的多监听器配置的 Kafka

mysql - 如何在配置单元中将时间戳转换为 gmt 格式

Python redis 订阅无法获取所有数据?

Hadoop 数据节点进程监听本地主机上的随机端口

hadoop - 为什么hadoop `FileSystem.delete`返回一个 bool 值

hadoop - Hadoop put和copyfromlocal之间的区别

scala - 通过远程 Spark 作业出错 : java. lang.IllegalAccessError : class org. apache.hadoop.hdfs.web.HftpFileSystem

hadoop - 如何构建大小不适合 RAM 的布隆过滤器?

hadoop - 使用 Sqoop 导入时 Parquet 文件中的脏值