更新时间:2026-06-11 GMT+08:00
分享

配置Kafka数据均衡工具

操作场景

该任务指导管理员根据业务需求,在客户端中执行Kafka均衡工具来均衡Kafka集群的负载,一般用于节点的退服、入服以及负载均衡的场景。

前提条件

  • MRS集群管理员已明确业务需求,并准备一个Kafka管理员用户(属于kafkaadmin组,集群未启用Kerberos认证(普通模式)时不涉及)。

    创建用户相关操作请参考创建Kafka用户并绑定角色

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

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

操作步骤

  1. 登录MRS集群Manager。

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

  2. 获取Kafka节点业务IP及端口。

    1. 选择“集群 > 服务 > Kafka > 实例”,查看并记录任意一个Broker角色实例的业务IP地址。
    2. 选择“配置 > 全部配置”,并根据集群模式获取端口号:
      • 集群已启用Kerberos认证(安全模式):搜索“sasl.port”参数,查看并记录端口号,默认为21007。
      • 集群未启用Kerberos认证(普通模式):搜索“port”参数,查看并记录端口号,默认为9092。

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

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

      创建LTS版本类型集群时,可以选择“组件端口”为“开源”场景或“定制”场景,选择“开源”时ZooKeeper默认端口为2181,选择“定制”时ZooKeeper默认端口为24002。

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

    cd /opt/client

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

    source bigdata_env

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

    kinit 组件业务用户

  8. 执行以下命令进入“kafka”目录。

    cd Kafka/kafka

  9. 使用“kafka-balancer.sh”进行用户集群均衡,常用命令如下:

    • 使用--run命令执行集群均衡:
      ./bin/kafka-balancer.sh --run --zookeeper ZooKeeper的任意一个节点的业务IP:zkPort/kafka --bootstrap-server Kafka集群IP:port --throttle 10000000 --consumer-config config/consumer.properties --show-details
      • 该命令包含均衡方案的生成和执行两部分。
      • --show-details为可选参数,表示是否打印方案明细。
      • --throttle表示均衡方案执行时的带宽限制,单位:bytes/sec。
    • 使用--run命令执行节点退服:
      ./bin/kafka-balancer.sh --run --zookeeper ZooKeeper的任意一个节点的业务IP:zkPort/kafka --bootstrap-server Kafka集群IP:port --throttle 10000000 --consumer-config config/consumer.properties --remove-brokers <BrokerId列表> --force
      • 此退服命令会将待退服Broker节点上的数据迁移至其他Broker节点。
      • --remove-brokers表示要删除的BrokerId列表,多个间用逗号分隔。
      • --force参数为可选参数,表示忽略磁盘使用率告警,强制生成迁移方案。
    • 查看执行状态:
      ./bin/kafka-balancer.sh --status --zookeeper ZooKeeper的任意一个节点的业务IP:zkPort/kafka
    • 生成均衡方案:
      ./bin/kafka-balancer.sh --generate --zookeeper ZooKeeper的任意一个节点的业务IP:zkPort/kafka --bootstrap-server Kafka集群IP:port --consumer-config config/consumer.properties

      该命令仅根据集群当前状态生成迁移方案,并打印到控制台。

    • 清理中间状态
      ./bin/kafka-balancer.sh --clean --zookeeper ZooKeeper的任意一个节点的业务IP:zkPort/kafka

      该命令一般在迁移没有正常执行完成时用来清理ZooKeeper上的中间状态信息。

常见问题

在使用Kafka均衡工具进行Partition迁移的过程中,如果出现集群中Broker故障导致均衡工具的执行进度阻塞,可以根据实际场景,参考对应步骤进行处理:

相关文档