当我描述kafka主题时,它不显示任何分区的日志结束偏移量,而是显示所有其他元数据,例如ISR,Replicas,Leader。
如何查看给定主题的分区的日志结束偏移量?
运行此命令:./kafka-topics.sh --zookeeper zk-service:2181 --describe --topic“ __consumer_offsets”
输出没有偏移列。
注意:仅需要日志结束偏移量。
答案 0 :(得分:1)
以下是您需要获取给定消费者组 的给定kafka主题的所有分区的偏移量的命令:
kafka-consumer-groups --bootstrap-server <kafka-broker-list-with-ports> --describe --group <consumer-group-name>
请注意,结尾处的<consumer-group-name>
很重要,因为偏移量是由通常属于某个消费群体的消费者实施的。
此命令的输出可能类似于:
TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID
<topic-name> 0 62 62 0 <consumer-id> <host> <client>
但是,在您的帖子中,您试图获取有关内部主题__consumer_offsets
的信息,因此您将需要一个消费者组,该消费者组将从这个内部主题中进行消费。您也许可以执行以下操作:
kafka-console-consumer --bootstrap-server <kafka-broker-list-with-ports> --topic __consumer_offsets --formatter "kafka.coordinator.group.GroupMetadataManager\$OffsetsMessageFormatter" --max-messages 5
以上命令的输出:
[<consumer-group-name>,<topic-name>,0]::[OffsetMetadata[481690879,NO_METADATA],CommitTime 1479708539051,ExpirationTime 1480313339051]
<consumer-group-name>
并将其放在开头提到的kafka-consumer-groups
命令中,您将获得给定使用者组的所有50个分区的偏移量详细信息。我希望这会有所帮助。
答案 1 :(得分:0)
由于您只需要查找主题的日志结尾偏移量,因此可以将kafka-run-class
与kafka.tools.GetOffsetShell
类一起使用。
假设您的主题是__consumer_offsets
,则可以通过运行以下命令获得结束偏移:
./kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list localhost:9092 --time -1 --topic __consumer_offsets
将--broker-list localhost:9092
更改为所需的Kafka地址。这将列出该主题中每个分区的所有日志结束偏移量。
答案 2 :(得分:0)
安装kafkacat,它是一个易于使用的kafka工具:
sudo apt-get update
sudo apt-get install kafkacat
kafkacat -C -b <kafka-broker-ip-and-port> -t <topic> -o -1
这不会消耗任何东西,因为添加消息后偏移量会增加。但是它将为您提供所有分区的偏移量。但是请注意,这不是您正在消耗的当前偏移量...上述答案将有助于您更多地了解分区滞后。