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

Apache zookeeper 无法从zookeeper检索主题/组/分区的卡夫卡偏移量,apache-zookeeper,apache-kafka,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/mytopi

我们在不同的服务器上运行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消费者,而不是卡夫卡经纪人。然而,应该显示偏移量的“ls”命令却显示为null

我应该在另一个地方查看偏移量吗?(最终,我需要一个脚本来报告所有使用者的偏移量。)


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

您应该使用
get
而不是
ls
ls
获取子节点,在您的情况下,
/consumers/mygrpid/offset/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
是偏移值。

您应该使用
get
而不是
ls
ls
获取子节点,在您的情况下,
/consumers/mygrpid/offset/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
是偏移值。

非常感谢您的帮助。我现在看到偏移值了。非常感谢你的帮助。我现在看到偏移值了。