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

时间:2017-11-30 16:12:33

标签: windows apache-kafka

我在here的帮助下在Windows机器中设置了Kafka服务器和一个zookeeper。我成功地设置了一个主题 - MTETest,如下面的日志,生成和使用此主题的消息。

尝试使用管理员命令提示符中安装时附带的批处理文件停止并启动Kafka和Zookeeper时,我遇到了一个问题,即kafka服务器无法启动以下消息 -

  

[2017-11-30 21:26:24,601]错误其中一个错误   日志加载期间的线程: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]致命   [Kafka Server 0],KafkaServer启动期间出现致命错误。准备   shutdown(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)     在   sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)     在   sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102)     在   sun.nio.fs.WindowsFileSystemProvider.implDelete(WindowsFileSystemProvider.java:269)     在   sun.nio.fs.AbstractFileSystemProvider.deleteIfExists(AbstractFileSystemProvider.java:108)     在java.nio.file.Files.deleteIfExists(Files.java:1165)at   kafka.log.Log $$ anonfun $ loadSegmentFiles $ 3.apply(Log.scala:318)at at   kafka.log.Log $$ anonfun $ loadSegmentFiles $ 3.apply(Log.scala:279)at at   scala.collection.TraversableLike $ WithFilter $$ anonfun $ $的foreach 1.适用(TraversableLike.scala:733)     在   scala.collection.IndexedSeqOptimized $ class.foreach(IndexedSeqOptimized.scala:33)     在   scala.collection.mutable.ArrayOps $ ofRef.foreach(ArrayOps.scala:186)     在   scala.collection.TraversableLike $ WithFilter.foreach(TraversableLike.scala:732)     在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申请$ 12 $$ anonfun $ $申请$ 1.适用MCV $ SP(LogManager.scala:172)     at kafka.utils.CoreUtils $$ anon $ 1.run(CoreUtils.scala:57)at at   java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:511)     在java.util.concurrent.FutureTask.run(FutureTask.java:266)at   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)     在   java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:624)     在java.lang.Thread.run(Thread.java:748)[2017-11-30 21:26:24,606]   WARN由于要求失败而发现损坏的索引文件:损坏   找到索引,索引文件   (C:\源\卡夫卡\ kafka_2.11-0.11.0.1 \ SourceKafkakafka_2.11-0.11.0.1 \ MTETestTopic-0 \ 00000000000000000000.index)   具有非零大小但最后一个偏移量为0且不大于   基准偏移0.}。删除   C:\源\卡夫卡\ kafka_2.11-0.11.0.1 \ SourceKafkakafka_2.11-0.11.0.1 \ MTETestTopic-0 \ 00000000000000000000.timeindex,   C:\源\卡夫卡\ kafka_2.11-0.11.0.1 \ SourceKafkakafka_2.11-0.11.0.1 \ MTETestTopic-0 \ 00000000000000000000.index,   和   C:\源\卡夫卡\ 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]信息   [Kafka Server 0],关闭(kafka.server.KafkaServer)[2017-11-30   21:26:24,613] INFO终止ZkClient事件线程。   (org.I0Itec.zkclient.ZkEventThread)[2017-11-30 21:26:24,615]警告   由于要求失败,发现损坏的索引文件:损坏索引   发现,索引文件   (C:\源\卡夫卡\ kafka_2.11-0.11.0.1 \ SourceKafkakafka_2.11-0.11.0.1__consumer_offsets-0 \ 00000000000000000000.index)   具有非零大小但最后一个偏移量为0且不大于   基准偏移0.}。删除   C:\源\卡夫卡\ kafka_2.11-0.11.0.1 \ SourceKafkakafka_2.11-0.11.0.1__consumer_offsets-0 \ 00000000000000000000.timeindex,   C:\源\卡夫卡\ kafka_2.11-0.11.0.1 \ SourceKafkakafka_2.11-0.11.0.1__consumer_offsets-0 \ 00000000000000000000.index,   和   C:\源\卡夫卡\ kafka_2.11-0.11.0.1 \ SourceKafkakafka_2.11-0.11.0.1__consumer_offsets-0 \ 00000000000000000000.txnindex   和重建指数...(kafka.log.Log)[2017-11-30 21:26:24,616]信息   会话:0x1600d98747a0001已关闭(org.apache.zookeeper.ZooKeeper)   [2017-11-30 21:26:24,623] INFO EventThread关闭会话:   0x1600d98747a0001(org.apache.zookeeper.ClientCnxn)[2017-11-30   21:26:24,625] INFO [Kafka Server 0],关闭完成   (kafka.server.KafkaServer)[2017-11-30 21:26:24,626]致命的退出   卡夫卡。 (kafka.server.KafkaServerStartable)[2017-11-30 21:26:24,628]   INFO [Kafka Server 0],关闭(kafka.server.KafkaServer)

我已尝试根据kafka server.properties中类似问题here中的建议将设置 - delete.topic.enable更改为true,但它没有帮助。另外,我没有手动打开主题或其相关文件。任何人都面临这个问题,请帮忙。这个问题是否特定于Windows?

当我删除由Kafka创建的主题及其相关的物理文件夹时,它会成功加载,但这不是正确的事情。请建议正确的解决方案。 感谢。

1 个答案:

答案 0 :(得分:0)

根据错误消息:

 The process cannot access the file because it is being used by another process.

你有另一个进程已经在使用这个文件,这阻止了Kafka的启动。有关查找流程的信息,请参阅https://serverfault.com/questions/1966/how-do-you-find-what-process-is-holding-a-file-open-in-windows