Платформа Confluent и java.nio.file.DirectoryNotEmptyException - PullRequest
0 голосов
/ 26 августа 2018

Я использую многофункциональную платформу Confluent https://docs.confluent.io/current/quickstart/ce-docker-quickstart.html

Я выполнил шаги, описанные в документации выше, и смог запустить Confluent Platform на компьютере с Windows 10 с помощью команды docker-compose up -d на следующей 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\0_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$1.postVisitDirectory(Utils.java:651) ~[kafka-clients-1.1.0.jar:na]
    at org.apache.kafka.common.utils.Utils$1.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$2.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.access$301(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]

В чем может быть причина этой ошибки и как ее исправить?

1 Ответ

0 голосов
/ 27 августа 2018

Непонятно, что означает «ваше приложение», но \tmp\, очевидно, не существует на машинах Windows

Я не уверен, как эти пути переводятся из * nix-адресов в контейнеры Windowsили если есть свойство для установки местоположения данных для Kafka Streams (?)

Вы можете попробовать установить KAFKA_LOG_DIRS на брокере, но это все же путь Unix, а не windows

Как уже упоминалосьв документации Confluent Windows на самом деле не тестировалась, и следует использовать Docker-машину (по крайней мере, раньше))

...