Windows环境下启动Kafka 3.4.0(KRaft模式)时遇错误
Kafka KRaft模式在Windows启动失败:文件被占用导致Quorum状态写入错误
问题场景
在Windows机器上按步骤启动KRaft模式Kafka(同版本ZooKeeper模式运行正常),执行以下操作后启动失败:
- 生成UUID
.\bin\windows\kafka-storage.bat random-uuid
- 格式化日志目录
.\bin\windows\kafka-storage.bat format -t d1hZRwFeRuqyNTTwR9grGw -c .\config\kraft\server.properties
- 启动服务器
.\bin\windows\kafka-server-start.bat .\config\kraft\server.properties
核心报错为文件被其他进程占用,导致Quorum状态写入失败:
Caused by: java.nio.file.FileSystemException: E:\tmp\kraft-combined-logs\__cluster_metadata-0\quorum-state.tmp -> E:\tmp\kraft-combined-logs\__cluster_metadata-0\quorum-state: The process cannot access the file because it is being used by another process
解决方案
终止残留进程
打开任务管理器,找到所有关联的Java进程(尤其是Kafka相关的),全部结束后重新启动KRaft服务。也可以用资源监视器定位quorum-state文件的占用进程,直接终止。清理并重新格式化日志目录
停掉所有Kafka进程后,删除E:\tmp\kraft-combined-logs下的所有文件,重新执行格式化命令再启动:
.\bin\windows\kafka-storage.bat format -t d1hZRwFeRuqyNTTwR9grGw -c .\config\kraft\server.properties .\bin\windows\kafka-server-start.bat .\config\kraft\server.properties
- 更换日志目录
修改.\config\kraft\server.properties中的log.dirs配置,指定一个新的、无其他进程访问的目录,比如:
log.dirs=D:\kafka-kraft-logs
保存后重新执行格式化和启动步骤。
- 以管理员身份运行命令行
右键命令提示符或PowerShell,选择「以管理员身份运行」,再执行所有KRaft相关命令,避免权限不足导致的文件操作失败。
内容的提问来源于stack exchange,提问作者Arvind Kumar
相关产品推荐
相关产品推荐

