AccessDeniedException при удалении темы в Windows Kafka

Я только что установил 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.

Что мне не хватает?

Возможный дубликат stackoverflow.com/questions/48114040/… Удалите все журналы из папок Zookeeper и Kafka-logs из C: / tmp, если kafka размещена в Windows.

Jp Naidu 29.07.2019 08:52
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
10
1
6 281
5

Ответы 5

У меня была аналогичная проблема, и это происходило только под окнами, см. КАФКА-1194, и это все еще применимо к Kafka 1.1.0

Единственный доступный обходной путь - отключить очиститель log.cleaner.enable = false.

Для локальной разработки под Windows вы можете игнорировать эту проблему, поскольку она не применяется в других ОС.

Я пробовал это, но все равно вылетает с тем же исключением.

rabejens 08.06.2018 11:09

Если вы отключите очиститель журналов, ваши диски со временем заполнятся.

OneCricketeer 09.12.2018 18:15

Отключение очистителя не устраняет исключение

SRi 08.07.2020 10:41

это не работает

mustafatorun 21.06.2021 10:45

У меня была аналогичная проблема после удаления темы. Мне пришлось пойти в расположение темы и удалить ее вручную, и это сработало. /tmp/kafka-logs/[yourTopicName]

Я не уверен, сработает ли то же самое для вас, так как я тоже новичок в KAFKA.

В моем случае мне также нужно удалить журналы ZK, тогда это сработало.

Ajay Khetan 15.04.2020 19:08

Я знаю, что опаздываю на вечеринку, но имейте в виду, что даже если вы удалите свою тему вручную или через некоторый пользовательский интерфейс Kafka и удалите все журналы kafka, kafka все равно может не запуститься из-за того, что он синхронизируется с ZK.

Итак, убедитесь, что вы очистили состояние ZK, удалив журнал ZK.

Пожалуйста, знайте, что эти действия необратимы. Также запустить как администратор

Большое спасибо. Этот работал только у меня. Я удалил сначала журналы kafka, и только после удаления журналов ZK это сработало.

Ajay Khetan 15.04.2020 18:43

Не могли бы вы добавить местоположение журналов zookeeper?

theprogrammer 24.03.2021 01:12

Проблема: У меня была аналогичная проблема после удаления темы. 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.

Другие вопросы по теме