无法使用zookeeper CLI获取kafka consumergroup的偏移量信息

时间:2017-02-25 14:02:49

标签: apache-kafka apache-zookeeper kafka-consumer-api

我正在使用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。 请帮我解决这个问题

1 个答案:

答案 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版本以及主题中的分区数。

如果有帮助,请告诉我。