【问题标题】:kafka-topics.sh --describe don't return anythingkafka-topics.sh --describe 不返回任何内容
【发布时间】: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)

我已经尝试了一些方法来解决这个问题,但没有任何乐趣:

  1. 重启kafka集群,让其他节点成为leader。
  2. 为受运行 ./kafka-reassign-partitions.sh 影响的主题分配不同的领导者
  3. 停止受影响节点上的 kafka 和 zookeeper 服务,移除 kafka-logs 和 zkdata 并重新启动它们。

虽然集群似乎能够将此节点视为任何其他节点并毫无问题地切换领导者/跟随者的角色......它看起来在某些时候不同步并且无法自行恢复。

有什么想法吗?

提前致谢

【问题讨论】:

    标签: apache-kafka


    【解决方案1】:

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

    在受影响的节点上启动zookeeper备份后,丢失的znodes被重新同步回来。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-27
      • 2019-04-06
      • 2012-02-15
      • 2020-09-07
      • 2021-11-22
      • 2015-11-06
      • 2013-11-14
      相关资源
      最近更新 更多