更新时间:2025-12-26 GMT+08:00
分享

如何获取Topic的分布信息

问题描述

如何获取Topic在Broker实例的分布信息?

前置操作

  1. 已安装客户端,例如安装目录为“/opt/client,以下操作的客户端目录只是举例,请根据实际安装目录修改

    下载并安装集群客户端的具体操作,请参考安装MRS集群客户端

  2. 登录MRS集群Manager。

    登录集群Manager具体操作,请参考访问MRS集群Manager

  3. 获取ZooKeeper节点业务IP及端口。

    1. 选择“集群 > 服务 > ZooKeeper > 实例”,查看并记录任意一个ZooKeeper角色实例的业务IP地址。
    2. 选择“配置 > 全部配置”,搜索“clientPort”,查看并记录端口号。

      默认端口如下:

      • 开源端口默认值为:2181
      • 定制端口默认值为:24002

      端口定制/开源区分:创建LTS版本类型集群时,可以选择“组件端口”为“开源”或是“定制”,选择“开源”使用开源端口,选择“定制”使用定制端口。

  4. 以客户端安装用户,登录安装客户端的节点。
  5. 执行以下命令,切换到客户端安装目录,例如安装目录为“/opt/client,具体以实际替换

    cd /opt/client

  6. 执行以下命令配置环境变量。

    source bigdata_env

  7. 执行以下命令,进行用户认证。(集群未启用Kerberos认证(普通模式)跳过此步骤)

    kinit 组件业务用户

  8. 执行以下命令进入Kafka客户端“bin”目录。

    cd Kafka/kafka/bin

  9. 执行Kafka相关命令,获取Topic分布信息和副本同步信息,观察返回结果。

    kafka-topics.sh --describe --zookeeper <zk_host:port/chroot>

    例如:

    [root@mgtdat-sh-3-01-3 client]#kafka-topics.sh --describe --zookeeper 10.149.0.90:2181/kafka
    Topic:topic1   PartitionCount:2  ReplicationFactor:2     Configs:
    Topic: topic1  Partition: 0 Leader: 26 Replicas: 23,25 Isr: 26
    Topic: topic1  Partition: 1 Leader: 24 Replicas: 24,23 Isr: 24,23

    其中,Replicas对应副本分布信息,Isr对应副本同步信息。

查询Broker ID的对应关系

  • 方法一:
    1. 在ZooKeeper中查询Broker ID的对应关系。
      sh zkCli.sh -server <zk_host:port>
    2. 在ZooKeeper客户端执行如下命令。
      ls /kafka/brokers/ids
      get /kafka/brokers/ids/<查询出的Broker id>

      例如:

      [root@node-master1gAMQ kafka]# zkCli.sh -server node-master1gAMQ:2181
      Connecting to node-master1gAMQ:2181
      Welcome to ZooKeeper!
      JLine support is enabled
      
      WATCHER::
      
      WatchedEvent state:SyncConnected type:None path:null
      [zk: node-master1gAMQ:2181(CONNECTED) 0] ls /kafka/brokers/
      ids      seqid    topics
      [zk: node-master1gAMQ:2181(CONNECTED) 0] ls /kafka/brokers/ids
      [1]
      [zk: node-master1gAMQ:2181(CONNECTED) 1] get /kafka/brokers/ids/1
      {"listener_security_protocol_map":{"PLAINTEXT":"PLAINTEXT","SSL":"SSL"},"endpoints":["PLAINTEXT://192.168.2.242:9092","SSL://192.168.2.242:9093"],"rack":"/default/rack0","jmx_port":21006,"host":"192.168.2.242","timestamp":"1580886124398","port":9092,"version":4}
      [zk: node-master1gAMQ:2181(CONNECTED) 2]
  • 方法二:

    执行以下命令,获取节点和broker ID的对应关系

    kafka-broker-info.sh --zookeeper <zk_host:port/chroot>

    例如:

    [root@node-master1gAMQ kafka]# bin/kafka-broker-info.sh --zookeeper 192.168.2.70:2181/kafka
    Broker_ID     IP_Address
    --------------------------
      1           192.168.2.242

相关文档