更新时间:2025-12-26 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. Kafka集群端口号:

      集群已启用Kerberos认证(安全模式):默认为21007

      集群未启用Kerberos认证(普通模式):默认为9092

  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”目录。

    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故障导致均衡工具的执行进度阻塞,可以根据实际场景,参考对应步骤进行处理

相关文档