Я только что установил Kafka (из Confluent Platform) на свой компьютер с Windows. Я запустил Zookeeper и Kafka и создал темы, производил и потреблял из них работы. Однако, как только я удаляю тему, Kafka вылетает следующим образом:
PS C:\confluent-4.1.1> .\bin\windows\kafka-topics.bat -zookeeper 127.0.0.1:2181 --topic foo --create --partitions 1 --replication-factor 1
Created topic "foo".
PS C:\confluent-4.1.1> .\bin\windows\kafka-topics.bat -zookeeper 127.0.0.1:2181 --topic foo --delete
Topic foo is marked for deletion.
Note: This will have no impact if delete.topic.enable is not set to true.
Это результат сбоя:
[2018-06-08 09:44:54,185] ERROR Error while renaming dir for foo-0 in log dir C:\confluent-4.1.1\data\kafka (kafka.server.LogDirFailureChannel)
java.nio.file.AccessDeniedException: C:\confluent-4.1.1\data\kafka\foo-0 -> C:\confluent-4.1.1\data\kafka\foo-0.cf697a92ed5246c0977bf9a279f15de8-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:697)
at kafka.log.Log$$anonfun$renameDir$1.apply$mcV$sp(Log.scala:579)
at kafka.log.Log$$anonfun$renameDir$1.apply(Log.scala:577)
at kafka.log.Log$$anonfun$renameDir$1.apply(Log.scala:577)
at kafka.log.Log.maybeHandleIOException(Log.scala:1678)
at kafka.log.Log.renameDir(Log.scala:577)
at kafka.log.LogManager.asyncDelete(LogManager.scala:828)
at kafka.cluster.Partition$$anonfun$delete$1.apply(Partition.scala:240)
at kafka.cluster.Partition$$anonfun$delete$1.apply(Partition.scala:235)
at kafka.utils.CoreUtils$.inLock(CoreUtils.scala:250)
at kafka.utils.CoreUtils$.inWriteLock(CoreUtils.scala:258)
at kafka.cluster.Partition.delete(Partition.scala:235)
at kafka.server.ReplicaManager.stopReplica(ReplicaManager.scala:347)
at kafka.server.ReplicaManager$$anonfun$stopReplicas$2.apply(ReplicaManager.scala:377)
at kafka.server.ReplicaManager$$anonfun$stopReplicas$2.apply(ReplicaManager.scala:375)
at scala.collection.Iterator$class.foreach(Iterator.scala:891)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1334)
at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
at kafka.server.ReplicaManager.stopReplicas(ReplicaManager.scala:375)
at kafka.server.KafkaApis.handleStopReplicaRequest(KafkaApis.scala:205)
at kafka.server.KafkaApis.handle(KafkaApis.scala:116)
at kafka.server.KafkaRequestHandler.run(KafkaRequestHandler.scala:69)
at java.lang.Thread.run(Thread.java:748)
Suppressed: java.nio.file.AccessDeniedException: C:\confluent-4.1.1\data\kafka\foo-0 -> C:\confluent-4.1.1\data\kafka\foo-0.cf697a92ed5246c0977bf9a279f15de8-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:301)
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:694)
... 23 more
[2018-06-08 09:44:54,187] INFO [ReplicaManager broker=0] Stopping serving replicas in dir C:\confluent-4.1.1\data\kafka (kafka.server.ReplicaManager)
[2018-06-08 09:44:54,192] INFO [ReplicaFetcherManager on broker 0] Removed fetcher for partitions (kafka.server.ReplicaFetcherManager)
[2018-06-08 09:44:54,193] INFO [ReplicaAlterLogDirsManager on broker 0] Removed fetcher for partitions (kafka.server.ReplicaAlterLogDirsManager)
[2018-06-08 09:44:54,195] INFO [ReplicaManager broker=0] Broker 0 stopped fetcher for partitions and stopped moving logs for partitions because they are in the failed log directory C:\confluent-4.1.1\data\kafka. (kafka.server.ReplicaManager)
[2018-06-08 09:44:54,195] INFO Stopping serving logs in dir C:\confluent-4.1.1\data\kafka (kafka.log.LogManager)
[2018-06-08 09:44:54,197] ERROR Shutdown broker because all log dirs in C:\confluent-4.1.1\data\kafka have failed (kafka.log.LogManager)
[2018-06-08 09:44:54,198] INFO [ReplicaFetcherManager on broker 0] Removed fetcher for partitions (kafka.server.ReplicaFetcherManager)
Пользователь, использующий Zookeeper и Kafka, имеет полные права доступа к C:\confluent-4.1.1\data\kafka.
Что мне не хватает?





У меня была аналогичная проблема, и это происходило только под окнами, см. КАФКА-1194, и это все еще применимо к Kafka 1.1.0
Единственный доступный обходной путь - отключить очиститель log.cleaner.enable = false.
Для локальной разработки под Windows вы можете игнорировать эту проблему, поскольку она не применяется в других ОС.
Я пробовал это, но все равно вылетает с тем же исключением.
Если вы отключите очиститель журналов, ваши диски со временем заполнятся.
Отключение очистителя не устраняет исключение
это не работает
У меня была аналогичная проблема после удаления темы. Мне пришлось пойти в расположение темы и удалить ее вручную, и это сработало.
/tmp/kafka-logs/[yourTopicName]
Я не уверен, сработает ли то же самое для вас, так как я тоже новичок в KAFKA.
В моем случае мне также нужно удалить журналы ZK, тогда это сработало.
Я знаю, что опаздываю на вечеринку, но имейте в виду, что даже если вы удалите свою тему вручную или через некоторый пользовательский интерфейс Kafka и удалите все журналы kafka, kafka все равно может не запуститься из-за того, что он синхронизируется с ZK.
Итак, убедитесь, что вы очистили состояние ZK, удалив журнал ZK.
Пожалуйста, знайте, что эти действия необратимы. Также запустить как администратор
Большое спасибо. Этот работал только у меня. Я удалил сначала журналы kafka, и только после удаления журналов ZK это сработало.
Не могли бы вы добавить местоположение журналов zookeeper?
Проблема: У меня была аналогичная проблема после удаления темы. zookeeper был запущен успешно, но при запуске kafka у меня возникала вышеупомянутая проблема.
Анализ: В моем случае я перенаправил журналы kafka в новое расположение папки C: \ Tools \ kafka_2.13-2.6.0 \ kafka-test-logs. Забыл создать папку kafka-test-logs. В этом случае он автоматически создаст папку по умолчанию с указанным путем, например: Toolskafka_2.13-2.6.0kafka-test-logs. Поэтому даже после удаления этой папки журналов в моем случае это не сработало.
Решение: Сначала я перестал работать с zookeeper. Я создал новую папку kafka-test-logs, которую забыл ранее, а затем удалил созданные по умолчанию журналы для kafka, а затем перезапустил zookeeper и сервер kafka. У меня все сработало.
Спасибо!! Ура и счастливого кодирования.
1- stop zookeeper & Kafka server,
2- then go to ‘kafka-logs’ folder , there you will see list of kafka topic folders, delete folder with topic name
3- go to ‘zookeeper-data’ folder , delete data inside that.
4- start zookeeper & kafka server again.
Примечание: если вы получаете ошибку «Cluster ID xxxxxxxxxx does not match stored clusterId», вам необходимо удалить все файлы в каталоге журнала kafkas.
Возможный дубликат stackoverflow.com/questions/48114040/… Удалите все журналы из папок Zookeeper и Kafka-logs из C: / tmp, если kafka размещена в Windows.