您的位置:首页 > 其它

kafka-storm spout拉取数据问题offset out of range

2017-01-16 09:06 441 查看
131236985 [Thread-15-spout] WARN storm.kafka.KafkaUtils - Got fetch request with offset out of range: [14026]; retrying with default start offset time from configuration. configured start offset time: [-2]

131236985 [Thread-17-spout] WARN storm.kafka.PartitionManager - Using new offset: 511883

131236985 [Thread-15-spout] WARN storm.kafka.PartitionManager - Using new offset: 511888

131236986 [Thread-15-spout] WARN storm.kafka.KafkaUtils - Got fetch request with offset out of range: [14026]; retrying with default start offset time from configuration. configured start offset time: [-2]

解决办法:

1.修改SpoutConfig.zkRoot 值

String zkRoot = “”;

SpoutConfig spoutConf = new SpoutConfig(hosts, topic, zkRoot, id);

2.将spoutConf.forceFromStart 设为 true;

原因:

storm启动的时候,默认是从头读取-2,当kafkaspout的task出错时候,会重新启动,这时候offset就会从zk中最老的offset,但kafka数据只会保存一段时间,从zk中读取道德offset的数据可能已经不存在,超过现在的范围。

kafkaspout读取的3种选项

-2: 从最老的开始读

-1: 从最近的开始读

0: 从Zk中读
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  kafka