kafka-topics.sh - 描述不返回任何内容

时间:2016-12-19 15:39:01

标签: apache-kafka

我正在运行由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)

我已经尝试了几件事来解决这个问题,没有任何乐趣:

  1. 重新启动kafka群集,以便其他节点成为领导者。
  2. 为受运行影响的主题分配不同的领导./kafka-reassign-partitions.sh
  3. 在受影响的节点上停止kafka和zookeeper服务,删除kafka-logs和zkdata并重新启动它们。
  4. 虽然群集似乎能够将此节点视为任何其他节点,并且没有问题地切换领导者/关注者的角色......看起来它在某些时候不同步并且无法自我恢复。

    有什么想法吗?

    提前致谢

1 个答案:

答案 0 :(得分:0)

我能够通过在受影响的节点中停止zookeeper和kafka服务并删除zkdata中可用的快照以及zklog目录中可用的关联事务日志来解决此问题。

在受影响的节点上启动zookeeper备份后,重新同步了丢失的znode。