更新时间:2024-05-11 GMT+08:00

管理Kafka主题

操作场景

用户可以根据业务需要,使用集群客户端管理Kafka的主题。启用Kerberos认证的集群,需要拥有管理Kafka主题的权限。

前提条件

已安装客户端。

操作步骤

  1. 进入ZooKeeper实例页面:

    • MRS 2.0.1之前版本,登录MRS Manager,选择“服务管理 > ZooKeeper > 实例”。
    • MRS 2.0.1及至3.x之前版本,在MRS控制台单击集群名称,选择“组件管理 > ZooKeeper > 实例”。

      若集群详情页面没有“组件管理”页签,请先完成IAM用户同步(在集群详情页的“概览”页签,单击“IAM用户同步”右侧的“同步”进行IAM用户同步)。

  2. 查看ZooKeeper角色实例的IP地址。

    记录ZooKeeper角色实例其中任意一个的IP地址即可。

  3. 根据业务情况,准备好客户端,登录安装客户端的节点。

    请根据客户端所在位置,登录安装客户端的节点。

  4. 执行以下命令,切换到客户端目录,例如“/opt/client/Kafka/kafka/bin”。

    cd /opt/client/Kafka/kafka/bin

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

    source /opt/client/bigdata_env

  6. 执行以下命令,进行用户认证。(普通模式跳过此步骤)

    kinit 组件业务用户

  7. MRS 3.x之前版本:分别执行以下命令,管理Kafka主题。

    • 创建主题

      sh kafka-topics.sh --create --topic 主题名称 --partitions 主题占用的分区数 --replication-factor 主题的备份个数 --zookeeper ZooKeeper角色实例所在节点IP地址:clientPort/kafka

    • 删除主题

      sh kafka-topics.sh --delete --topic 主题名称 --zookeeper ZooKeeper角色实例所在节点IP地址:clientPort/kafka

    • 主题分区数和主题备份个数不能大于Kafka角色实例数量。
    • 默认情况下,ZooKeeper的“clientPort”“2181
    • ZooKeeper角色实例所在节点IP地址,填写三个角色实例其中任意一个的IP地址即可。
    • 使用Kafka主题管理消息,请参见管理Kafka主题中的消息

  8. MRS 3.x及后续版本:使用kafka-topics.sh管理Kafka主题。

    • 罗列主题:
      • ./kafka-topics.sh --list --zookeeper ZooKeeper的任意一个节点的业务IP:clientPort/kafka
      • ./kafka-topics.sh --list --bootstrap-server Kafka集群IP:21007 --command-config ../config/client.properties
    • 查看主题:
      • ./kafka-topics.sh --describe --zookeeper ZooKeeper的任意一个节点的业务IP:clientPort/kafka --topic 主题名称
      • ./kafka-topics.sh --describe --bootstrap-server Kafka集群IP:21007 --command-config ../config/client.properties --topic 主题名称
    • 修改主题:
      • ./kafka-topics.sh --alter --topic 主题名称 --config 配置项=配置值 --zookeeper ZooKeeper的任意一个节点的业务IP:clientPort/kafka
    • 扩展分区:
      • ./kafka-topics.sh --alter --topic 主题名称 --zookeeper ZooKeeper的任意一个节点的业务IP:clientPort/kafka --command-config Kafka/kafka/config/client.properties --partitions 扩展后分区个数
      • ./kafka-topics.sh --alter --topic 主题名称 --bootstrap-server Kafka集群IP:21007 --command-config Kafka/kafka/config/client.properties --partitions 扩展后分区个数
    • 删除主题:
      • ./kafka-topics.sh --delete --topic 主题名称 --zookeeper ZooKeeper的任意一个节点的业务IP:clientPort/kafka
      • ./kafka-topics.sh --delete --topic 主题名称 --bootstrap-server Kafka集群IP:21007 --command-config ../config/client.properties