增加kafka节点后重新分配partition

增加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
}

 

 

使用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,3" \

--generate

 

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

image

把计划修改的结果复制,放在第二个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,已经重新分配

image

 

 

posted @ 2021-06-16 11:18  会飞的鹅  阅读(446)  评论(0)    收藏  举报