【问题标题】:How to get log end offset of all partitions for a given kafka topic using kafka command line?如何使用 kafka 命令行获取给定 kafka 主题的所有分区的日志结束偏移量?
【发布时间】:2019-10-06 15:58:44
【问题描述】:

当我描述一个 kafka 主题时,它不会显示任何分区的日志结束偏移量,而是显示所有其他元数据,例如 ISR、Replicas、Leader。

如何查看给定主题的分区的日志结束偏移量?

运行这个:./kafka-topics.sh --zookeeper zk-service:2181 --describe --topic "__consumer_offsets"

输出没有偏移列。

注意:只需要日志结束偏移量。

【问题讨论】:

  • kafka-consumer-groups.sh 是您需要的。
  • 如果没有组订阅该主题怎么办
  • 你必须指定一个消费者组才能看到偏移量(否则就没有意义)
  • 我只需要查看日志结束偏移量

标签: apache-kafka


【解决方案1】:

由于您只是在寻找主题的日志结束偏移量,因此您可以将 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 地址。这将列出主题中每个分区的所有日志结束偏移量。

【讨论】:

    【解决方案2】:

    以下是获取给定消费者组的给定 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 的此信息,因此您需要一个消费者组,该消费者组可以让消费者从该内部主题中消费。您或许可以执行以下操作:

    1. kafka-console-consumer --bootstrap-server &lt;kafka-broker-list-with-ports&gt; --topic __consumer_offsets --formatter "kafka.coordinator.group.GroupMetadataManager\$OffsetsMessageFormatter" --max-messages 5

    上述命令的输出:

    [&lt;consumer-group-name&gt;,&lt;topic-name&gt;,0]::[OffsetMetadata[481690879,NO_METADATA],CommitTime 1479708539051,ExpirationTime 1480313339051]

    1. 只需使用输出中的&lt;consumer-group-name&gt; 并将其放入开头提到的kafka-consumer-groups 命令中,您将获得给定消费者组的所有50 个分区的偏移详细信息仅限。

    我希望这会有所帮助。

    【讨论】:

      【解决方案3】:

      安装kafkacat,一个好用的kafka工具:

          sudo apt-get update
          sudo apt-get install kafkacat
      
          kafkacat -C -b <kafka-broker-ip-and-port> -t <topic> -o -1
      

      这不会消耗任何东西,因为在添加消息后偏移量会增加。但它会给你所有分区的偏移量。但是请注意,这不是您正在消耗的当前偏移量......以上答案将在查看分区滞后方面为您提供更多帮助。

      【讨论】:

        猜你喜欢
        • 2016-11-20
        • 1970-01-01
        • 2016-05-27
        • 1970-01-01
        • 2015-09-12
        • 1970-01-01
        • 2019-07-20
        • 2016-12-30
        • 1970-01-01
        相关资源
        最近更新 更多