在 Windows 上的 kafka 上获取 java.nio.file.AccessDeniedException

Ish*_*hak 8 apache-kafka apache-zookeeper

我尝试在Windows上设置kafka和zookeeper。最初我创建了主题、生产者和消费者。一切正常。然后我使用以下命令删除了一个主题:

kafka-run-class.bat kafka.admin.TopicCommand --delete --topic junk --zookeeper localhost:2181

现在,每次我重新运行 kafka 时,它都会因以下错误而终止: java.nio.file.AccessDeniedException: C:\kafka_2.12-2.8.0\kafka_2.12-2.8.0kafka-logs\junk-0 -> C:\kafka_2.12-2.8.0\kafka_2.12-2.8.0kafka-logs\junk-0.305f67a1260f4cccb87d9367c6619fd2-删除

我尝试删除 Zookeper 和 kafka 目录,并为两者使用一个新目录。但不知何故它保留了以前保存的主题和日志(我不知道它们存储在什么位置)。

谁能告诉我如何解决这个问题?

小智 10

我在新版本 kafka_2.12-3.0.0 中也遇到了同样的问题。使用较低版本kafka_2.12-2.8.1整理


tra*_*mer 2

以管理员身份登录,然后尝试以下主题路径/位置日志和

  1. delete it manually 或者如果您想尝试新鲜的,请删除所有日志(kafka 和 Zookeeper 日志)

/tmp/kafka-logs/[yourTopics] // 删除 *** Kafka 日志

现在返回并再试一次。如果您仍然遇到问题,请禁用清洁器

log.cleaner.enable = false

  1. 接下来,我建议停止所有服务,然后输入%temp%Windows 命令,并删除所有临时文件

在Linux中

// find stale files older than for more than `7 days` 
// and deletes those, not folders. 
sudo find /tmp -type f -atime +7-delete
Run Code Online (Sandbox Code Playgroud)
  1. 最后,您需要删除zookeeper日志并终止正在运行的zookeeper进程,请参阅此处的答案是否使用汇合堆栈?

 // kill the zookeeper process
  ps aux | grep zookeeper
  sudo kill -9 <PID>     // or windows admin

 // find and delete **** ZooKeeper logs
  ps -ef | grep zookeeper | grep zookeeper.log.dir --color    
  lsof -p <pid of zookeeper> | grep log
  lsof -p <pid of zookeeper> | grep out
Run Code Online (Sandbox Code Playgroud)

更新下面的评论 - 是的,您可以在 Windows 上运行,使用来自官方 Confluence 站点的WSL 2 子系统/Linux 2链接

Windows 上的卡夫卡