如何使用kafka命令行获取给定kafka主题的所有分区的日志结束偏移量?

cld4siwp  于 2021-06-06  发布在  Kafka
关注(0)|答案(3)|浏览(385)

当我描述一个kafka主题时,它不显示任何分区的日志结束偏移量,而是显示所有其他元数据,如isr、副本、leader。
如何查看给定主题的分区的日志结束偏移量?
运行这个:./kafka-topics.sh--zookeeper-zk-service:2181 --describe --主题“\消费者\补偿”
输出没有偏移列。
注:只需要日志结束偏移。

hgqdbh6s

hgqdbh6s1#

安装kafkacat,它是一个易于使用的kafka工具:

sudo apt-get update
    sudo apt-get install kafkacat

    kafkacat -C -b <kafka-broker-ip-and-port> -t <topic> -o -1

这不会消耗任何内容,因为在添加消息后偏移量会增加。但它会给出所有分区的偏移量。但是请注意,这不是您正在消耗的当前偏移量。。。以上的答案将帮助您更深入地了解分区延迟。

vuv7lop3

vuv7lop32#

以下是获取给定使用者组的给定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个分区的偏移量详细信息。
我希望这有帮助。

cunj1qz1

cunj1qz13#

由于只查找主题的日志结束偏移量,因此可以使用 kafka-run-classkafka.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地址。这将列出主题中每个分区的所有日志结束偏移量。

相关问题