a_a*_*a_a 21 windows access-denied apache-kafka
卡夫卡爱好者,在这里需要一些帮助.我无法启动kafka,因为该文件\00000000000000000000.timeindex正由另一个进程使用.以下是日志:
[2017-08-09 22:49:22,811] FATAL [Kafka Server 0], Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer)
java.nio.file.FileSystemException: \installation\kafka_2.11-0.11.0.0\log\test-0\00000000000000000000.timeindex: The process cannot access the file because it is being used by another process.
at 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:311)
at kafka.log.Log$$anonfun$loadSegmentFiles$3.apply(Log.scala:272)
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:272)
at kafka.log.Log.loadSegments(Log.scala:376)
at kafka.log.Log.<init>(Log.scala:179)
at kafka.log.Log$.apply(Log.scala:1580)
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:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
[2017-08-09 22:49:22,826] INFO [Kafka Server 0], shutting down (kafka.server.KafkaServer)
Run Code Online (Sandbox Code Playgroud)
pat*_*elb 35
我遇到过同样的问题.我能搞清楚的唯一方法就是删除C:\tmp\kafka-logs 目录.之后,我能够启动kafka服务器.
您将丢失数据,偏移量将从0开始.
小智 13
这似乎是一个已知问题,在您上次发布消息后 168 小时后会在 Windows 上触发。显然这个问题正在这里被跟踪和处理:KAFKA-8145
有两种解决方法:
将以下属性更新为规定值
# The minimum age of a log file to be eligible for deletion due to age
log.retention.hours=-1
Run Code Online (Sandbox Code Playgroud)
在属性文件的末尾添加此属性。
log.cleaner.enable=false
Run Code Online (Sandbox Code Playgroud)
本质上,您正在做的是告诉 Kafka 代理不要打扰删除旧消息,并且所有消息的年龄现在是无限的,即它们永远不会被删除。正如您所看到的,这显然不是一个理想的状态,因此您应该这样做,以便您能够使用所需的任何内容,然后清理您的文件/目录(步骤 1)。恕我直言,上面提到的 JIRA 问题 很快就会得到解决,根据此评论,它似乎很快就会得到解决。
所有答案都通过删除数据为您提供相同的解决方案,而不是如何预防问题。
实际上,您只需要正确停止 Kafka 和 Zookeeper。
您只需按顺序运行这两个命令
kafka-server-stop.sh
zookeeper-server-stop.sh
Run Code Online (Sandbox Code Playgroud)
然后下次开始时,您将看不到任何问题。
| 归档时间: |
|
| 查看次数: |
20235 次 |
| 最近记录: |