【发布时间】:2016-12-20 19:20:31
【问题描述】:
我正在运行一个由 3 个节点组成的 kafka 集群。 其中一个节点崩溃了,从那时起它的行为就一直很奇怪......
以下内容不会在故障节点上返回任何内容:
kafka-topics.sh --describe --zookeeper mynode01:2181
但是,查询其他节点上的主题会返回预期的主题。
我看到的另一件事是zookeeper似乎缺少一些目录:
./zkCli.sh -server mynode01
[zk: localhost:2181(CONNECTED) 1] ls /
[controller, zookeeper]
而如果我检查它返回的任何其他节点:
[zk: localhost:2181(CONNECTED) 0] ls /
[isr_change_notification, zookeeper, admin, consumers, config, controller, brokers]
日志报告以下条目:
Error for partition [myqueue-1,0] to broker 1:org.apache.kafka.common.errors.NotLeaderForPartitionException: This server is not the leader for that topic-partition. (kafka.server.ReplicaFetcherThread)
我已经尝试了一些方法来解决这个问题,但没有任何乐趣:
- 重启kafka集群,让其他节点成为leader。
- 为受运行 ./kafka-reassign-partitions.sh 影响的主题分配不同的领导者
- 停止受影响节点上的 kafka 和 zookeeper 服务,移除 kafka-logs 和 zkdata 并重新启动它们。
虽然集群似乎能够将此节点视为任何其他节点并毫无问题地切换领导者/跟随者的角色......它看起来在某些时候不同步并且无法自行恢复。
有什么想法吗?
提前致谢
【问题讨论】:
标签: apache-kafka