apache-kafka - 数据不一致的 kafka 代理 - NotLeaderForPartitionError
问题描述
我们有一个 13 节点的 Kafka 集群,每个代理有多个磁盘,所有主题的复制因子为 3。
Broker 6 存在硬件问题,需要重新加载完整的操作系统 (Linux) 并更换 2 次磁盘。现在我在这个节点上再次安装了 Kafka,使用相同的代理 id 6,但开始从所有生产者那里得到一个异常 -
[Error 6] NotLeaderForPartitionError: ProduceResponsePayload(topic=u'amyTopic', partition=7, error=6, offset=-1)
我假设由于我使用相同的代理 ID,它(动物园管理员?或控制器代理?)期待磁盘中的数据被替换或其他一些可能在操作系统重新加载期间被清除的元信息。
在不对集群造成太大干扰且不会丢失数据的情况下,我必须将此节点添加回集群有哪些选项?我是否应该为此节点使用新的代理 ID,然后像添加新节点后那样重新分区每个主题的数据?我们在集群中有很多数据(几百 TB),我试图避免由数据重新分区引起的大量数据移动,它可能会阻塞整个集群。请建议。
解决方案
推荐阅读
- node.js - 我如何通过在 Lucid Models 中传递关系列来使用 order?
- machine-learning - 自然语言处理模型时间线
- java - 如何删除出现的空白 JFrame?
- python - 如何将音频文件从模型传递到 Django 中的模板?
- reactjs - 使用 Chrome 开发工具作为 CSS 编辑器进行反应或如何与反应开发人员共享在 chrome 开发工具中所做的更改
- android - 如何在应用启动时设置倒数计时器的值
- c++ - 如何在 C++ 中可视化有关完整链接聚类的分步过程?
- python - 根据 numpy 数组中的列值获取行号
- android - 自定义模型类型的自定义数组适配器仅返回一个值
- python - 根据列值将 2 列分组到类别