融合平台和 java.nio.file.DirectoryNotEmptyException

Confluent Platform and java.nio.file.DirectoryNotEmptyException

我使用多合一融合平台https://docs.confluent.io/current/quickstart/ce-docker-quickstart.html

我执行了上面文档中描述的步骤,并且能够通过 docker-compose up -d 命令在 Windows 10 台机器上 运行 Confluent Platform docker-compose.yml https://github.com/confluentinc/cp-docker-images/tree/master/examples/cp-all-in-one

除我在应用程序控制台中看到的错误消息外,一切正常:

java.nio.file.DirectoryNotEmptyException: \tmp\kafka-streams\testStreams[=11=]_3
    at sun.nio.fs.WindowsFileSystemProvider.implDelete(WindowsFileSystemProvider.java:266) ~[na:1.8.0_171]
    at sun.nio.fs.AbstractFileSystemProvider.delete(AbstractFileSystemProvider.java:103) ~[na:1.8.0_171]
    at java.nio.file.Files.delete(Files.java:1126) ~[na:1.8.0_171]
    at org.apache.kafka.common.utils.Utils.postVisitDirectory(Utils.java:651) ~[kafka-clients-1.1.0.jar:na]
    at org.apache.kafka.common.utils.Utils.postVisitDirectory(Utils.java:634) ~[kafka-clients-1.1.0.jar:na]
    at java.nio.file.Files.walkFileTree(Files.java:2688) ~[na:1.8.0_171]
    at java.nio.file.Files.walkFileTree(Files.java:2742) ~[na:1.8.0_171]
    at org.apache.kafka.common.utils.Utils.delete(Utils.java:634) ~[kafka-clients-1.1.0.jar:na]
    at org.apache.kafka.streams.processor.internals.StateDirectory.cleanRemovedTasks(StateDirectory.java:287) [kafka-streams-1.1.0.jar:na]
    at org.apache.kafka.streams.processor.internals.StateDirectory.cleanRemovedTasks(StateDirectory.java:250) [kafka-streams-1.1.0.jar:na]
    at org.apache.kafka.streams.KafkaStreams.run(KafkaStreams.java:777) [kafka-streams-1.1.0.jar:na]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_171]
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [na:1.8.0_171]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access1(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_171]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [na:1.8.0_171]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_171]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_171]
    at java.lang.Thread.run(Thread.java:748) [na:1.8.0_171]

此错误可能是什么原因以及如何解决?

不清楚"you're application"是什么意思 ,但 \tmp\ 显然不存在于 Windows 台机器上

我不确定这些路径如何从 *nix 地址转换为 Windows 容器,或者是否有 属性 来设置 Kafka Streams 的数据位置(?)

您可以尝试在代理上设置 KAFKA_LOG_DIRS,但这仍然是一个 Unix 路径,而不是 windows

如 Confluent 文档中所述,Windows 并未真正经过测试,应该使用 Docker 机器(至少,它过去是这么说的)