以下是我解决此问题所采取的步骤:
- 启动 ZooKeeper
- 启动 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.properties
和dataDir
中的 zookeeper 参数zookeeper.properties
,并确保两者指向相同类型的目录(例如临时或持久)。然后,使用例如 Jacob 的答案中的方法重置不一致的数据(如果有),即删除meta.properties
文件,然后重新启动 zookeeper 和 kafka。
答案3
我在 Windows 机器上运行 Kafka 服务器时遇到了同样的问题。您可以尝试以下方法来解决此问题:
- 打开位于 kafka 文件夹 kafka_2.11-2.4.0\config 中的服务器 server.properties 文件(考虑到您的 kafka 版本,文件夹名称可能是 kafka_<kafka_version>)
- 搜索条目 log.dirs
- 如果您的 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。