我正在使用Zookeeper
我正在使用zookeeper CLI获取给定使用者组的偏移信息。
以下工作正常
Command: get /consumers/[ConsumerGroup]/offsets/[TopicName]
o/p :
0:1640002
cZxid = 0x304ca036d
ctime = Fri Dec 23 17:29:30 UTC 2016
mZxid = 0x30af96e80
mtime = Fri Feb 24 19:15:00 UTC 2017
pZxid = 0x304ca036d
cversion = 0
dataVersion = 113179
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 9
numChildren = 0
但是低于一个不起作用
command: get /consumers/[Same_Consumer_Group]/offsets/[Same_Topic_Name]/0
o/p:Node does not exist: /consumers/[Same_Consumer_Group]/offsets/[Same_Topic_Name]/0
因此,当我尝试使用PARTITION_ID获取偏移信息时,它无效。
注意显示0:1640002
的第一个命令,因此它表示分区0中的偏移量为1640002。
请帮我解决这个问题
答案 0 :(得分:1)
Zookeeper本质上是一棵树,numChildren = 0表示
/consumers/[ConsumerGroup]/offsets/[TopicName]
是一个叶子节点,因此当您尝试获取它的(不存在的)子节点时会出现错误。
根据Kafka 0.8的https://cwiki.apache.org/confluence/display/KAFKA/Kafka+data+structures+in+Zookeeper,在Zookeeper中存储偏移的方式是
/consumers/[ConsumerGroup]/offsets/[TopicName]
本身不包含任何数据,而是可以在子节点中找到偏移量
/consumers/[ConsumerGroup]/offsets/[TopicName]/[Partition]
但是,因为对你来说显然不是这种情况,我假设你要么使用某些旧版本的Kafka,要么(对于某些版本的Kafka)使用单个分区主题的附加级别树没有创建。
但在我看来,无论如何,所有这些都不应该让你真正关心。 查看您发布的输出,似乎您有一个带有1个分区的主题,该分区中该特定使用者组的偏移量为1640002.这是您需要的所有偏移信息,不是吗?
现在,如果主题有超过1个分区,那么可能会发生一些奇怪的事情。
如果您认为仍有问题,请在评论中发布您的Kafka和Zookeeper版本以及主题中的分区数。
如果有帮助,请告诉我。