增加kafka节点后重新分配partition

扩容kafka之后,针对扩容之前的topic进行重新平衡leader,Replicas,Isr

  1. 生成分配计划

新建一个json文件,内容如下:(topic为要修改的topic)这里文件取名为

topics-to-move.json

{
  "topics": [{
     "topic": "cross.cube.bitmap"
   },
   {
     "topic": "cross.cube.count"
   },
   {
     "topic": "native.collector"
   },
   {
     "topic": "native.cube.bitmap"
   },
   {
     "topic": "native.cube.count"
   },
   {
     "topic": "web.collector"
   },
   {
     "topic": "web.cube.bitmap"
   },
   {
     "topic": "web.cube.count"
   }
   ],
   "version": 1
}

  1. 使用kafka-reassign-partitions.sh命令生成一个分配计划

下面的命令行中broker-list参数即对应BrokerID

命令如下:

bin/kafka-reassign-partitions.sh --zookeeper zk01.td.com:2181 \
--topics-to-move-json-file topics-to-move.json \
--broker-list "1,2,4" \
--generate

结果入下图,生成了两条信息,第一条为现在的分配情况,第二条为计划更改的内容

把计划修改的结果复制,放在第二个json文件中,这里取名为reassignment.json

  1. 执行分配计划

运行kafka-reassign-partition.sh命令根据上述执行计划生成的结果进行分配,命令如下:

bin/kafka-reassign-partitions.sh \
--zookeeper zk01.td.com:2181 \
--reassignment-json-file reassignment.json \
--execute

查看topic,已经重新分配

  1. 进度查看

bin/kafka-reassign-partitions.sh \
--zookeeper zk01.td.com:2181 \
--reassignment-json-file reassignment.json \
--verify

参考链接

https://szzdzhp.com/kafka/op/op-partition-reasignment.html#3-%E5%88%86%E5%8C%BA%E6%89%A9%E5%AE%B9


增加kafka节点后重新分配partition
https://www.hechunyu.com/archives/1698219531107
作者
chunyu
发布于
2021年12月25日
许可协议