文档首页/ MapReduce服务 MRS/ 组件操作指南(LTS版)/ 使用Kafka/ Kafka常见问题/ kafka-reassign-partitions.sh无重分配回退方案如何处理
更新时间:2026-05-07 GMT+08:00
分享

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

    • 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

相关文档