风暴:KafkaSpout - 我的消费者群体在哪里?

storm: KafkaSpout - where is my consumer group?

我需要查看 storm 用于通过其 KafkaSpout 读取的偏移值。这是我传入的配置:

SpoutConfig kafkaConfig = new SpoutConfig(brokerHosts, "some_values",  
     "/storm/env_values", "storm_DEBUG");

我已经尝试使用一些 kafka 工具进行搜索,但还没有找到任何有用的东西:

是否有更好的工具可用于查找我的偏移量?

KafkaSpout在{root path}/{id}/{partition-id}下默认维护了Storm的zookeeper上的offset信息。阅读 this 了解更多信息。

您可以在 Kafka (bin/zookeeper-shell.sh zookeeperHost:port) 中使用捆绑的 zookeeper shell 并使用 CLI 浏览到该位置。针对偏移路径发出 get 将为您提供存储的值。

看看https://cwiki.apache.org/confluence/display/KAFKA/Ecosystem 在管理控制台中,有一个用于监控主题和偏移量的工具列表。我记得我用过 https://github.com/otoolep/stormkafkamon 一个 python 监控工具。

但是你到底想要什么?如果你只是想查看你的偏移量,你可以在 zookeeper 中看到你的偏移量,只连接你的存储偏移量的 zookeeper。

示例:

bin/zookeeper-shell.sh localhost:2000

正在连接到 localhost:2000

Welcome to ZooKeeper! JLine support is disabled

ls /

[storm, brokers, zookeeper]

ls /brokers

[kafka-spout]

ls /brokers/kafka-spout

[partition_0]

get /brokers/kafka-spout/partition_0

{"topology":{"id":"a9be1962-6b4e-4ed4-ae68-155a1948a1f6","name":"consolidate_reports"},"offset":4426029,"partition":0,"broker":{"host":"localhost","port":9092},"topic":"bid_history"} cZxid = 0x50 ctime = Thu May 21 11:00:48 BRT 2015 mZxid = 0x50 mtime = Thu May 21 11:00:48 BRT 2015 pZxid = 0x50 cversion = 0 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 182 numChildren = 0

原来我看错了动物园管理员。根据this doc:

The Kafka spout stores its offsets in the same instance of Zookeeper used by Apache Storm.

所以查看 kafka zookeeper 不会有帮助。