首页 文章

经纪人失败后 Kafka 0.10.0.1 分区重新分配

提问于
浏览
3

我正在测试 kafka 的分区重新分配,作为启动生产系统的先驱。我有几个主题,每个分区有 9 个分区,复制因子为 3.我已杀死其中一个代理来模拟失败情况,并验证某些主题已被复制(通过修改雅虎的 kafka 经理的分支进行验证,以允许添加版本 0.10.0.1 集群)。

然后我开始了一个具有不同身份的新经纪人。我现在想将分区分发给这个新的代理。我试图使用 kafka 管理器的重新分配功能但是这不起作用(可能是由于未正确修改的 fork)。

我看到 kafka 附带一个bin/kafka-reassign-partitions.sh脚本,但是文档说我必须手动写出 json 格式的每个主题的分区重新分配。有没有办法处理这个没有手动决定哪个经纪人分区必须去?

1 回答

  • 4

    嗯,今天我做同样的事情真是巧合。我没有你想要的答案,但我最终实现了我想要的。

    最终,我所做的是使用相同的工具为重新分配执行了 kafka-reassign-partitions 命令。但无论它生成什么,我只是用旧的失败的经纪人 ID 替换了新的经纪人 ID。出于某种原因,生成的 json 移动了一切。

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

    然后我重新启动了新经纪人的 kafka,它神奇地成为了寻找新的替代领导者的分区的领导者。

    如果我明天还有工作,如果我还有工作,我会告诉你的; -)

相关问题