kafka-reassign-partitions.sh无重分配回退方案如何处理
问题现象
kafka-reassign-partitions.sh重分配之后,没有回退方案。
处理步骤
- 以客户端安装用户,登录已安装Kafka客户端的节点。
- 切换到Kafka客户端安装目录,例如“/opt/client”。
cd /opt/client
- 执行以下命令,配置环境变量。
source bigdata_env
- 执行以下命令,进行用户认证(普通模式跳过此步骤)。
kinit组件业务用户
- 执行以下命令,切换到Kafka客户端安装目录。
cd Kafka/kafka
- 在执行重分配执行之前获取原始分区与副本方案。
./bin/kafka-reassign-partitions.sh --bootstrap-server <Kafka集群IP: port> --topics-to-move-json-file topic.json --broker-list "BrokerId1,BrokerId2,..." --generate --command-config config/client.properties | sed -n '2p' > json文件
例如:
./bin/kafka-reassign-partitions.sh --bootstrap-server 192.168.1.1:21007 --topics-to-move-json-file topic.json --broker-list "1,2,3" --generate --command-config config/client.properties | sed -n '2p' > original.json
- topic.json中存放需重分配topic,格式为{"topics": [{"topic": "topic1-name"},{"topic": "topic2-name"}], "version": 1},
- --broker-list:目标Broker ID,多个用逗号分隔,数量应不少于原topic涉及的Broker。
- original.json为输出文件,保存当前分区副本分配方案(用于验证或回滚)。
- 在执行重分配之后需要回退,执行如下命令:
./bin/kafka-reassign-partitions.sh --bootstrap-server <Kafka集群IP: port> --reassignment-json-file 6得到的json文件 --execute --command-config ../config/client.properties