由于未加载主题,Kafka启动失败。

3
我已经在Windows机器上安装了Kafka服务器和Zookeeper,并获得了这里的帮助。我成功地设置了一个主题-MTETest,如下所示的日志,可以向该主题生产和消费消息。
尝试使用安装程序中随附的批处理文件在管理员命令提示符下停止和启动Kafka和Zookeeper时,我遇到一个问题,即Kafka服务器无法启动,并显示以下消息-
[2017-11-30 21:26:24,601] ERROR:在日志加载过程中的一个线程出现错误:java.nio.file.FileSystemException: C:SourceKafkakafka_2.11-0.11.0.1\MTETest-0\00000000000000000000.timeindex: 由于另一个进程正在使用该文件,因此无法访问该文件。 (kafka.log.LogManager) [2017-11-30 21:26:24,603] FATAL[Kafka Server 0]:KafkaServer 启动期间发生致命错误。准备关闭(kafka.server.KafkaServer) java.nio.file.FileSystemException:C:SourceKafkakafka_2.11-0.11.0.1\MTETest-0\00000000000000000000.timeindex: 由于另一个进程正在使用该文件,因此无法访问该文件。 在 sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:86) at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97) at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102) at sun.nio.fs.WindowsFileSystemProvider.implDelete(WindowsFileSystemProvider.java:269) at sun.nio.fs.AbstractFileSystemProvider.deleteIfExists(AbstractFileSystemProvider.java:108) at java.nio.file.Files.deleteIfExists(Files.java:1165) at kafka.log.Log$$anonfun$loadSegmentFiles$3.apply(Log.scala:318) at kafka.log.Log$$anonfun$loadSegmentFiles$3.apply(Log.scala:279) at scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(TraversableLike.scala:733) at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33) at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:186) at scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:732) at kafka.log.Log.loadSegmentFiles(Log.scala:279) at kafka.log.Log.loadSegments(Log.scala:383) at kafka.log.Log.(Log.scala:186) at kafka.log.Log$.apply(Log.scala:1609) at kafka.log.LogManager$$anonfun$loadLogs$2$$anonfun$5$$anonfun$apply$12$$anonfun$apply$1.apply$mcV$sp(LogManager.scala:172) at kafka.utils.CoreUtils$$anon$1.run(CoreUtils.scala:57) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) [2017-11-30 21:26:24,606] WARN:由于要求失败,发现一个损坏的索引文件:发现损坏的索引,索引文件(C:\Source\Kafka\kafka_2.11-0.11.0.1\SourceKafkakafka_2.11-0.11.0.1\MTETestTopic-0\00000000000000000000.index)具有非零大小,但最后的偏移量为0,不大于基本偏移量0。}.删除C:\Source\Kafka\kafka_2.11-0.11.0.1\SourceKafkakafka_2.11-0.11.0.1\MTETestTopic-0\00000000000000000000.timeindex、C:\Source\Kafka\kafka_2.11-0.11.0.1\SourceKafkakafka_2.11-0.11.0.1\MTETestTopic-0\00000000000000000000.index和C:\Source\Kafka\kafka_2.11-0.11.0.1\SourceKafkakafka_2.11-0.11.0.1\MTETestTopic-0\00000000000000000000.txnindex并重新构建索引...(kafka.log.Log) [2017-11-30 21:26:24,609] INFO[K
我尝试按照类似问题这里的建议,将设置“delete.topic.enable”更改为true,但并没有帮助。同时,我也没有手动打开主题或相关文件。请问是否有人遇到过此问题,请帮忙解决。这个问题是特定于Windows吗?
当我删除由Kafka创建的主题及其相关物理文件时,它可以成功加载,但这不是正确的做法。请建议正确的解决方案。 谢谢。

您好 @LearnAndShare。我在Windows环境下使用Kafka 1.0.0也遇到了一个问题。您有更新吗?您是否已经向Kafka支持团队提交了Bug报告? - gvdm
1个回答

0

谢谢!找到持有Kafka所需主题文件的进程非常有帮助,但是这个问题已经被另一个同事报告了,很可能是Kafka+Windows环境中的一个错误。在调用kafka stop命令文件时,不应该出现此问题,否则它不能用于生产部署。 - LearnAndShare
1
Kafka 众所周知在 Windows 上存在一些问题,请参见:http://kafka.apache.org/documentation/#os - Mickael Maison

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接