我把数百个主题从一个经纪人转到另一个经纪人。过程是
使用 kafka-topics.sh
生成现有分区列表
使用 kafka-reassign-partitions.sh
生成分区/代理等的当前列表
编辑此列表,使Broker7的每个示例(将被替换)现在都是Broker7,4(4是新的broker)
跑 kafka-reassign-partitions.sh (broker list) --execute
添加新代理
等待。。看(使用--verify。。在完成之前。。。
将经纪人列表编辑为经纪人4,7
再做一次。。再做一次。。
进行首选领导人选举(在第7种情况下是领先的)
编辑broker列表以删除broker 7的所有示例
再做(4)和(5)
要快乐
这对成百上千的主题都很有效。。除了一个黏糊糊的。此坚持者拒绝与新代理(isr列表中缺少)同步,即使它包含在副本列表中
输出自 kafka-topics.sh
(尝试用broker 4替换broker 7):
主题:shard_3分区:7引线:3副本:3,4,7 isr:7,3
我已经运行(4)以上几次,希望得到这个完成,但它似乎不想。我等了一夜,以防速度太慢。
关于如何解开这个的建议?
1条答案
按热度按时间x0fgdtte1#
原来,首席经纪人对某些事情感到不安,分区列表没有及时更新。
解决方案:
bin/zkCli.sh -server
get /controller
重新启动该控制器上的kafka服务-这会将控制权传递给另一个框重试分区命令