【问题标题】:Why does Kafka Streams app fail with AccessDeniedException on Windows for state cleanup?为什么 Kafka Streams 应用程序在 Windows 上失败并出现 AccessDeniedException 以进行状态清理?
【发布时间】:2019-01-24 14:17:10
【问题描述】:

这里是 MS Windows 上的 Kafka Streams 2.1.0。

我在 macOS 上,所以不能自己处理它,但是在与使用 MS Windows 的人一起工作时,他们在每次启动应用程序时在 Kafka Streams 应用程序中使用 KafkaStreams.cleanUp 时报告了 java.nio.file.AccessDeniedException(除了第一次)。

Deleting topics throws exception #196 中,有人询问为什么 Kafka Streams 应用程序在运行 EmbeddedSingleNodeKafkaCluster#deleteTopicsAndWait 时会以 java.nio.file.AccessDeniedException 失败。

Caused by: java.nio.file.AccessDeniedException: C:\Users\gwade\AppData\Local\Temp\junit6747789160683566966\junit5490786451417386230\topic-0 -> C:\Users\gwade\AppData\Local\Temp\junit6747789160683566966\junit5490786451417386230\topic-0.a3c80cfca5e740bd8c1be434d817af2c-delete
        at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:83)
        at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)
        at sun.nio.fs.WindowsFileCopy.move(WindowsFileCopy.java:387)
        at sun.nio.fs.WindowsFileSystemProvider.move(WindowsFileSystemProvider.java:287)
        at java.nio.file.Files.move(Files.java:1395)
        at org.apache.kafka.common.utils.Utils.atomicMoveWithFallback(Utils.java:809)
        at kafka.log.Log$$anonfun$renameDir$1.apply$mcV$sp(Log.scala:728)
        at kafka.log.Log$$anonfun$renameDir$1.apply(Log.scala:726)
        at kafka.log.Log$$anonfun$renameDir$1.apply(Log.scala:726)
        at kafka.log.Log.maybeHandleIOException(Log.scala:1927)
        at kafka.log.Log.renameDir(Log.scala:726)
        at kafka.log.LogManager.asyncDelete(LogManager.scala:842)
        at kafka.cluster.Partition$$anonfun$delete$1.apply(Partition.scala:353)
        at kafka.utils.CoreUtils$.inLock(CoreUtils.scala:251)
        at kafka.utils.CoreUtils$.inWriteLock(CoreUtils.scala:259)
        at kafka.cluster.Partition.delete(Partition.scala:347)
        at kafka.server.ReplicaManager.stopReplica(ReplicaManager.scala:350)
        at kafka.server.ReplicaManager$$anonfun$stopReplicas$2.apply(ReplicaManager.scala:380)
        at kafka.server.ReplicaManager$$anonfun$stopReplicas$2.apply(ReplicaManager.scala:378)
        at scala.collection.Iterator$class.foreach(Iterator.scala:893)
        at scala.collection.AbstractIterator.foreach(Iterator.scala:1336)
        at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
        at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
        at kafka.server.ReplicaManager.stopReplicas(ReplicaManager.scala:378)
        at kafka.server.KafkaApis.handleStopReplicaRequest(KafkaApis.scala:200)
        at kafka.server.KafkaApis.handle(KafkaApis.scala:111)
        at kafka.server.KafkaRequestHandler.run(KafkaRequestHandler.scala:69)
        at java.lang.Thread.run(Thread.java:748)

知道根本原因是什么吗?

【问题讨论】:

    标签: windows apache-kafka apache-kafka-streams


    【解决方案1】:

    解决方法是关闭 Zookeeper 并删除 /tmp/zookeeper(这只是删除了 Kafka 集群的整个状态,包括要删除的主题及其在代理上的本地目录)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-16
      • 2018-08-29
      • 2018-11-18
      • 1970-01-01
      • 2022-01-16
      • 2021-01-04
      • 1970-01-01
      相关资源
      最近更新 更多