【问题标题】:Is it possible to see the data partition wise in a kafka topic?是否可以在 kafka 主题中明智地查看数据分区?
【发布时间】:2018-04-01 06:56:40
【问题描述】:

几天前我已经开始使用 Kafka。我在 Windows 环境中使用 Kafka,我想查看 Kafka 主题的每个分区中的数据。

我有一个名为ExampleTopic 的主题,replication.factor 设置为 3 和 3 个分区。我可以看到主题中的数据,但我想查看哪些消息进入了哪些分区。

请告诉我是否可以,如果可以,那么如何?

【问题讨论】:

    标签: apache-kafka kafka-consumer-api kafka-producer-api


    【解决方案1】:

    您可以使用Kafka控制台消费者的--partition参数来指定从哪个分区消费: bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic ExampleTopic --partition 0 您还可以指定一个--offset 参数来指示从哪个偏移量开始。如果不存在,则从分区末尾开始消费。

    【讨论】:

    • 在 2.10 上,这给出了一个错误,指出分区不是可识别的命令。在其他一些线程中,建议使用分区而不是分区,即使这样也没有用。
    • 这个控制台消费者功能已经有一段时间了,is still recognized 从最新版本 (2.0.1) 开始。您能否分享一下您是如何运行导致错误的命令的?
    • :bin mam$ ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic my-topic --partition 0 以上是我试过的,我得到了"'分区不可用”。
    【解决方案2】:

    我有一个基于 GUI 的工具来查看名为 kafka 工具的主题的每个分区中的数据。 http://www.kafkatool.com 它是管理我们的 kafka 集群的工具。还提供了许多应该尝试的功能。

    【讨论】:

      【解决方案3】:

      使用kafkacat,例如:

      $ kafkacat -b localhost:9092 -t my_topic -C \
      -f '\nKey (%K bytes): %k\t\nValue (%S bytes): %s\n\
      Timestamp: %T\tPartition: %p\tOffset: %o\n--\n'
      
      Key (1 bytes): 1
      Value (79 bytes): {"uid":1,"name":"Cliff","locale":"en_US","address_city":"St Louis","elite":"P"}
      Timestamp: 1520618381093        Partition: 0    Offset: 0
      

      【讨论】:

      • 我不认为该工具适用于 windows 环境,或者我可能无法弄清楚。总之谢谢你!!!!!!
      • @RamanMishra:- 你能告诉我你是怎么想出来的吗?表示如何查看哪些消息在哪个分区中?
      • 有一个名为 kafka tool 的基于 ui 的工具,只需安装它并设置您的 kafka 集群,它将向您显示所有代理主题和分区,您可以在其中查看每个分区中的数据。如果您不知道如何设置,请告诉我。
      • 好的..感谢您的帮助
      • 如果你在本地设置:cluserName : "anything you want" version : "the kafka version" Bootstrapserver: "localhost:9092" sasl mechanish: plantext (如果你没有任何安全在集群上实现)
      猜你喜欢
      • 2017-04-29
      • 2017-02-22
      • 2015-12-22
      • 2019-12-05
      • 2016-02-14
      • 1970-01-01
      • 1970-01-01
      • 2016-10-01
      相关资源
      最近更新 更多