我正在运行由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)
我已经尝试了几件事来解决这个问题,没有任何乐趣:
虽然群集似乎能够将此节点视为任何其他节点,并且没有问题地切换领导者/关注者的角色......看起来它在某些时候不同步并且无法自我恢复。
有什么想法吗?
提前致谢
答案 0 :(得分:0)
我能够通过在受影响的节点中停止zookeeper和kafka服务并删除zkdata中可用的快照以及zklog目录中可用的关联事务日志来解决此问题。
在受影响的节点上启动zookeeper备份后,重新同步了丢失的znode。