
# kafka-reassign-partitions.sh无重分配回退方案如何处理
#### 问题现象
kafka-reassign-partitions.sh重分配之后，没有回退方案。
#### 处理步骤
1. 以客户端安装用户，登录已安装Kafka客户端的节点。
2. 切换到Kafka客户端安装目录，例如"/opt/client"。 
   **cd /opt/client**
   
   
3. 执行以下命令，配置环境变量。 
   **source bigdata_env**
   
   
4. 执行以下命令，进行用户认证（普通模式跳过此步骤）。 
   **kinit** *组件业务用户*
   
   
5. 执行以下命令，切换到Kafka客户端安装目录。 
   **cd Kafka/kafka**
   
   
6. 在执行重分配之前获取原始分区与副本方案。
   
   **./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**
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
   - topic.json中存放需重分配topic，格式为{"topics": \[{"topic": "topic1-name"},{"topic": "topic2-name"}\], "version": 1}，
   
   - --broker-list：目标Broker ID，多个用逗号分隔，数量应不少于原topic涉及的Broker。
   
   - original.json为输出文件，保存当前分区副本分配方案（用于验证或回滚）。
    
   
   
7. 在执行重分配之后需要回退，执行如下命令： 
   **./bin/kafka-reassign-partitions.sh --bootstrap-server** *\<Kafka集群IP: port\>* **--reassignment-json-file** *[6]得到的json文件* **--execute --command-config ../config/client.properties**
   
   
 
