Apache kafka 代理失败后Kafka 0.10.0.1分区重新分配

Apache kafka 代理失败后Kafka 0.10.0.1分区重新分配,apache-kafka,yahoo-kafka-manager,Apache Kafka,Yahoo Kafka Manager,我正在测试卡夫卡的分区重新分配,作为启动制作系统的先兆。我有几个主题,每个主题有9个分区,复制因子为3。我已经杀死了一个代理来模拟故障情况,并验证了一些主题是否未被复制(验证是通过yahoo的kafka manager的一个分支完成的,该分支被修改为允许添加版本0.10.0.1集群) 然后我用不同的id启动了一个新的代理。现在我想将分区分配给这个新代理。我试图使用kafka manager的“重新分配分区”功能,但没有成功(可能是由于未正确修改的fork) 我看到kafka附带了一个bin/ka

我正在测试卡夫卡的分区重新分配,作为启动制作系统的先兆。我有几个主题,每个主题有9个分区,复制因子为3。我已经杀死了一个代理来模拟故障情况,并验证了一些主题是否未被复制(验证是通过yahoo的kafka manager的一个分支完成的,该分支被修改为允许添加版本0.10.0.1集群)

然后我用不同的id启动了一个新的代理。现在我想将分区分配给这个新代理。我试图使用kafka manager的“重新分配分区”功能,但没有成功(可能是由于未正确修改的fork)


我看到kafka附带了一个
bin/kafka reassign partitions.sh
脚本,但是文档说我必须手动以json格式写出每个主题的分区重新分配。有没有一种方法可以在不手动决定必须使用哪些代理分区的情况下处理此问题?

嗯,我今天也在做同样的事情,真是太巧了。我没有你可能会喜欢的答案,但我最终实现了我想要的

最终,我所做的是用同一个工具建议的重新分配来执行kafka reassign partitions命令。但是不管它生成什么,我只是用旧的失败的代理id替换了新的代理id。出于某种原因,生成的json移动了所有东西

这将失败(或者说永远不会完成),因为旧的代理已经去世了。然后我不得不删除zookeeper中的重新分配操作(znode:admin/reassign_partitions或其他)

然后我在新的代理上重新启动了kafka,它神奇地成为正在寻找新的替代领导者的分区的领导者


我会告诉你明天一切是否正常,我是否还有工作;-)

你是说你使用yahoo的kafka管理器来生成重新分配json?我使用了cli utils-kafka reassign partitions(或kafka reassign partitions.sh)。我从自制中安装了卡夫卡,但卡夫卡安装也包括UTIL。我还使用了Netflix的Zookeeper参展商软件包,允许您查看/修改Zookeeper Znode。但你们可以通过它的utils来管理Zookeeper。是的,我也在使用exhibitor。我没有意识到cli工具实际生成了重新分配json,我需要再次阅读文档。kafka-reassign-partitions--generate--zookeer zookeeper1:2181/znode--broker list“id1,id2,id3…”--移动json文件somefile.json的主题