无法从zookeeper检索主题/组/分区的kafka偏移量

时间:2015-02-04 00:31:39

标签: apache-zookeeper apache-kafka

我们在不同的服务器上运行zookeeper 3.3和kafka 0.8。我们正在使用HL消费者,他们按照预期访问kafka队列中的数据,重新启动时他们从中断的地方获取。因此,消费者的行为与预期一致。 问题是当我们使用zkCli.sh时,我们无法在zookeeper中看到偏移量。目前,消费者被设置为仅在一个主题的一个分区中运行 cmd“ls / consumers / mygrpid / offsets / mytopic / 0”返回[]。 对于“ls / consumers / mygrpid / owners / mytopic”,它返回[]。

因为当消费者停止并再次重新启动消费者时,消费者的行为与预期一致(即,它从上次运行时停止的偏移量中获取。我们可以通过查看给出偏差的日志来判断这一点。每次提交时我们都知道动物园管理员应该为消费者保存承诺的抵消。我的理解是,zookeeper跟踪HL消费者,而不是kafka经纪人。然而,应该显示偏移的“ls”命令显示为null。

我是否应该在不同的地方查看偏移量? (最终,我需要一个脚本来报告所有消费者的抵消。)

非常感谢任何帮助或建议。

1 个答案:

答案 0 :(得分:4)

您应该使用get代替lsls获取子节点,在您的情况下/consumers/mygrpid/offsets/mytopic/0没有子节点。但它有一个值,因此运行get /consumers/mygrpid/offsets/mytopic/0应该会显示如下内容:

47
cZxid = 0x568
ctime = Tue Feb 03 19:08:10 EET 2015
mZxid = 0x568
mtime = Tue Feb 03 19:08:10 EET 2015
pZxid = 0x568
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 2
numChildren = 0

其中47是偏移值。