我是Storm世界的新手。在我的拓扑中,我正在使用来自Kafka的数据,并使用SpoutConfig
。
通过一些测试,我收到了以下警告信息:
2015-10-01 23:31:51.753 s.k.KafkaUtils [WARN]获取偏移超出范围的获取请求:[85970] 2015-10-01 23:31:51.755 s.k.PartitionManager [WARN]使用新的偏移量:0
我的SpoutConfig
将ignoreZkOffsets
设置为false
所以我希望在提交新拓扑时,它会从存储在Zookeeper中的最新偏移消耗。
但是,当我终止旧拓扑并提交新拓扑时,会显示警告消息,并且新拓扑不能从偏移中消耗。如果我忘了什么,你能给我一个好主意吗?
答案 0 :(得分:1)
最后,我发现了我错过的东西。
由于我的拓扑结构使用了两个不同的Kafka源代码,因此我创建了两个KafkaSpout
个SpoutConifg
个实例,每个实例都分配给每个KafkaSpout
。
但是当我实例化每个SpoutConfig
实例时,我将相同的id传递给每个实例。这导致只有一个带有id的znode,即使我希望从两个不同的来源消费。
因此,两个PartitionManager
尝试使用相同的单个znode,其中有一个偏移信息。如果PartitionManager
中的一个尝试使用具有另一侧的偏移量的新元组,则会显示警告消息。