增加kafka节点后重新分配partition
扩容kafka之后,针对扩容之前的topic进行重新平衡leader,Replicas,Isr
生成分配计划
新建一个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,4" \
--generate
结果入下图,生成了两条信息,第一条为现在的分配情况,第二条为计划更改的内容
把计划修改的结果复制,放在第二个json文件中,这里取名为reassignment.json
执行分配计划
运行kafka-reassign-partition.sh命令根据上述执行计划生成的结果进行分配,命令如下:
bin/kafka-reassign-partitions.sh \
--zookeeper zk01.td.com:2181 \
--reassignment-json-file reassignment.json \
--execute
查看topic,已经重新分配
进度查看
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