配置Kafka数据均衡工具
操作场景
该任务指导管理员根据业务需求,在客户端中执行Kafka均衡工具来均衡Kafka集群的负载,一般用于节点的退服、入服以及负载均衡的场景。
前提条件
- MRS集群管理员已明确业务需求,并准备一个Kafka管理员用户(属于kafkaadmin组,集群未启用Kerberos认证(普通模式)时不涉及)。
创建用户相关操作请参考创建Kafka用户并绑定角色。
- 已安装客户端,例如安装目录为“/opt/client”,以下操作的客户端目录只是举例,请根据实际安装目录修改。
下载并安装集群客户端的具体操作,请参考安装MRS集群客户端。
操作步骤
- 登录MRS集群Manager。
登录集群Manager具体操作,请参考访问MRS集群Manager。
- 获取Kafka节点业务IP及端口。
- 获取ZooKeeper节点业务IP及端口。
- 以客户端安装用户,登录安装客户端的节点。
- 执行以下命令,切换到客户端安装目录,例如安装目录为“/opt/client”,具体以实际替换。
cd /opt/client - 执行以下命令配置环境变量。
source bigdata_env
- 执行以下命令,进行用户认证。(集群未启用Kerberos认证(普通模式)时跳过此步骤)
kinit 组件业务用户 - 执行以下命令进入“kafka”目录。
cd Kafka/kafka
- 使用“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上的中间状态信息。
- 使用--run命令执行集群均衡:
常见问题
在使用Kafka均衡工具进行Partition迁移的过程中,如果出现集群中Broker故障导致均衡工具的执行进度阻塞,可以根据实际场景,参考对应步骤进行处理: