Kafka风暴喷口:获取了偏移量超出范围的获取请求

lvjbypge  于 2021-06-07  发布在  Kafka
关注(0)|答案(2)|浏览(260)

我们在storm拓扑中有一个场景,kafkaspouts无法使用来自主题的任何消息。喷口连续记录相同的警告消息:
获取了偏移量超出范围的获取请求

...
2016-10-26 11:11:31.070 o.a.s.k.KafkaUtils [WARN] Partition{host=somehost.org:9092, topic=my-topic, partition=0} Got fetch request with offset out of range: [3]
2016-10-26 11:11:31.078 o.a.s.k.KafkaUtils [WARN] Partition{host=somehost.org:9092, topic=my-topic, partition=0} Got fetch request with offset out of range: [3]
2016-10-26 11:11:31.084 o.a.s.k.KafkaUtils [WARN] Partition{host=somehost.org:9092, topic=my-topic, partition=0} Got fetch request with offset out of range: [3]
2016-10-26 11:11:31.098 o.a.s.k.KafkaUtils [WARN] Partition{host=somehost.org:9092, topic=my-topic, partition=0} Got fetch request with offset out of range: [3]
2016-10-26 11:11:31.104 o.a.s.k.KafkaUtils [WARN] Partition{host=somehost.org:9092, topic=my-topic, partition=0} Got fetch request with offset out of range: [3]
2016-10-26 11:11:31.111 o.a.s.k.KafkaUtils [WARN] Partition{host=somehost.org:9092, topic=my-topic, partition=0} Got fetch request with offset out of range: [3]
...

喷口被配置为从zookeeper读取最后一个提交偏移量,在这个场景中,这个偏移量大于kafka中最新的消息偏移量。我们也在研究主题偏移重置的原因。
目前我们通过观察风暴日志中的超出范围警告来解决这个问题,删除zookeeper偏移条目,然后重新部署拓扑。

ef1yzkbh

ef1yzkbh1#

在我的例子中,这是因为我重新创建了Kafka主题,我的Kafka普特订阅了这个主题。
特定分区的偏移量保存在zookeeper中,如果删除了某个主题,然后又重新创建了该主题,则必须从zookeeper中手动删除偏移量信息。
只需打开zookeeper cli,然后删除属于kafkaspout的使用者“group id”的“node”所在的路径。有关帮助,请参阅,https://www.tutorialspoint.com/zookeeper/zookeeper_cli.htm

j0pj023g

j0pj023g2#

如果提交了无效的偏移量,则使用客户端配置“auto.offset.reset”。它接受值“最小”和“最大”。如果未设置该值,则会引发异常(与您的情况相同)。
为了 KafkaSpout 您可以通过变量设置此值 KafkaConfig#startOffsetTime 设置为 kafka.api.OffsetRequest.EarliestTime() 或者 kafka.api.OffsetRequest.LatestTime() .
看到了吗http://storm.apache.org/releases/1.0.2/storm-kafka.html

相关问题