无法使用 zookeeper 启动 kafka(kafka.common.InconsistentClusterIdException)

无法使用 zookeeper 启动 kafka(kafka.common.InconsistentClusterIdException)

以下是我解决此问题所采取的步骤:

  1. 启动 ZooKeeper
  2. 启动 Kafka:.\bin\windows\kafka-server-start.bat .\config\server.properties

另请注意,我的操作系统是 Windows

在第二步时发生错误:

错误 KafkaServer 启动时发生致命错误。准备关闭 (kafka.server.KafkaServer) kafka.common.InconsistentClusterIdException:集群 ID Reu8ClK3TTywPiNLIQIm1w 与 meta.properties 中存储的 clusterId Some(BaPSk1bCSsKFxQQ4717R6Q) 不匹配。代理正在尝试加入错误的集群。配置的 zookeeper.connect 可能有误。 在 kafka.server.KafkaServer.startup(KafkaServer.scala:220)在 kafka.server.KafkaServerStartable.startup(KafkaServerStartable.scala:44)在 kafka.Kafka$.main(Kafka.scala:84)在 kafka.Kafka.main(Kafka.scala)

当我触发.\bin\windows\kafka-server-start.bat .\config\server.properties zookeeper控制台返回:

信息 [SyncThread:0:FileTxnLog@216] - 创建新的日志文件:log.1

如何修复此问题以使 kafka 运行?

编辑看到这个回答按照这些步骤解决了我的问题

答案1

我通过删除日志目录中的 meta.properties 文件解决了我的计算机(Windows 10)上的这个问题。

在我停止 zookeeper 和服务器并重新启动它们之后,问题本身就出现了。

答案2

通常,当 kafka 日志存储在持久文件夹中而 zookeeper 数据存储在临时文件夹中,或反之亦然时,就会出现此问题。然后,在系统重启后,存储在临时目录中的文件会被清理并重新生成,从而导致配置不匹配。

为了防止这种情况再次发生,请修改log.dirs中的 kafka 参数server.propertiesdataDir中的 zookeeper 参数zookeeper.properties,并确保两者指向相同类型的目录(例如临时或持久)。然后,使用例如 Jacob 的答案中的方法重置不一致的数据(如果有),即删除meta.properties文件,然后重新启动 zookeeper 和 kafka。

答案3

我在 Windows 机器上运行 Kafka 服务器时遇到了同样的问题。您可以尝试以下方法来解决此问题:

  1. 打开位于 kafka 文件夹 kafka_2.11-2.4.0\config 中的服务器 server.properties 文件(考虑到您的 kafka 版本,文件夹名称可能是 kafka_<kafka_version>)
  2. 搜索条目 log.dirs
  3. 如果您的 log.dir 路径包含 Windows 目录路径,例如 E:\Shyam\Software\kafka_2.11-2.4.0\kafka-logs,其中有一个反斜杠,即 ,请将其更改为双反斜杠,即使用 \

答案4

在 Windows 版本 20H2 和 OS 内部版本 19042.662 上转义日志目录路径<kafka_dir>\config目录对我有用。

以前是

log.dirs=C:\*********\kafka\logs

变成

log.dirs=C:\\*********\\kafka\\logs

更改后可能需要先重新启动 zookeeper,然后再重新启动 kafka。

相关内容