Apache kafka 如何从cli中删除卡夫卡主题?
从那以后已经几个小时了,这个话题还没有被删除 我看到一些建议,建议我应该在我的Apache kafka 如何从cli中删除卡夫卡主题?,apache-kafka,Apache Kafka,从那以后已经几个小时了,这个话题还没有被删除 我看到一些建议,建议我应该在我的服务器.properties中放入delete.topic.enable,然后重新启动kafka。我试过这个。它没有起作用 $ kafka-topics --zookeeper localhost:2181 --list | grep my-topic my-topic $ kafka-topics --zookeeper localhost:2181 --delete --topic my-topic Topic m
服务器.properties中放入delete.topic.enable
,然后重新启动kafka。我试过这个。它没有起作用
$ kafka-topics --zookeeper localhost:2181 --list | grep my-topic
my-topic
$ kafka-topics --zookeeper localhost:2181 --delete --topic my-topic
Topic my-topic is marked for deletion.
Note: This will have no impact if delete.topic.enable is not set to true.
$ kafka-topics --zookeeper localhost:2181 --list | grep my-topic
my-topic - marked for deletion
(为什么默认情况下不设置此选项?)
在任何情况下,这些建议都是针对卡夫卡0的。*我正在使用一个更新的版本
$ grep -F delete.topic.enable /usr/local/etc/kafka/server.properties
delete.topic.enable = true
如何删除主题
我可以关闭kafka和zookeeper,运行rm-r/usr/local/var/lib/kafka日志/usr/local/var/run/zookeeper/data
,然后再次启动zookeeper和kafka。但这是相当激烈的。当然应该有办法说服卡夫卡主题真正删除主题?建议您使用的命令删除主题
不幸的是,有几个原因可以解释为什么主题会停留在“标记为删除”状态
如果您检查控制器日志,您可能会看到为什么它无法删除它。在控制器日志中,删除管理器中的所有行都以主题删除管理器
作为前缀
您应该定期看到类似处理主题删除的消息…
。如果控制器已放弃删除,则应以以下格式记录:暂停删除主题…
如果要强制删除,可以尝试:
- 正在删除Zookeeper中的主题详细信息。使用zookeeper shell.sh
,运行rmr/brokers/topics/TOPIC\u NAME
最后,如果这些都不起作用,您可以按照提示删除磁盘上的日志数据/建议使用此命令来删除主题 不幸的是,有几个原因可以解释为什么主题会停留在“标记为删除”状态 如果您检查控制器日志,您可能会看到为什么它无法删除它。在控制器日志中,删除管理器中的所有行都以
主题删除管理器
作为前缀
您应该定期看到类似处理主题删除的消息…
。如果控制器已放弃删除,则应以以下格式记录:暂停删除主题…
如果要强制删除,可以尝试:
- 正在删除Zookeeper中的主题详细信息。使用zookeeper shell.sh,运行
rmr/brokers/topics/TOPIC\u NAME
- 反弹控制器
最后,如果这些都不起作用,您可以按照提示,根据同事的建议,删除磁盘上的日志数据
- 关闭卡夫卡和动物园管理员
- 在
/usr/local/etc/kafka/server.properties
- 重新启动动物园管理员和卡夫卡
现在我可以再次删除主题了。我不知道为什么会这样,但我怀疑这与最近的macOS升级有关。根据一位同事的建议,我
- 关闭卡夫卡和动物园管理员
- 在
/usr/local/etc/kafka/server.properties
- 重新启动动物园管理员和卡夫卡
现在我可以再次删除主题了。我不知道为什么会这样,但怀疑这与最近的macOS升级有关。对不起,我误读了您的消息,并将我的回复标记为删除,以避免混淆。如果将
delete.topic.enable
设置为true
则主题应以异步方式自动删除。这个问题以前在我身上发生过好几次,结果证明一些生产者/消费者流程仍然在这个主题上运行。找到并终止进程后,主题将被删除。你检查过这些过程吗?顺便说一下,@vahid我没有检查过这些过程。现在没有了,但我已经恢复了通过其他方式删除主题的能力。如果问题再次出现,我将在将来检查。对不起,我误读了您的消息,并将我的回复标记为删除,以避免混淆。如果将delete.topic.enable
设置为true
则主题应以异步方式自动删除。这个问题以前在我身上发生过好几次,结果证明一些生产者/消费者流程仍然在这个主题上运行。找到并终止进程后,主题将被删除。你检查过这些过程吗?顺便说一下,@vahid我没有检查过这些过程。现在没有了,但我已经恢复了通过其他方式删除主题的能力。我将在将来检查问题是否再次发生。不幸的是,我检查了/usr/local/var/log/kafka/kafka_output.log
,它不包含您描述的消息。与/deletation/i
匹配的唯一消息是日志,因为分区重命名为。-delete,并计划删除(kafka.Log.LogManager)
我指的是控制器日志。在任何时候,集群中的一个代理都应该是控制器。默认情况下,它将其操作记录在名为controller.log
:啊,对了。在/usr/local/cillar/kafka/1.1.0/libexec/logs/controller.log
找到该文件。它似乎每小时旋转一次。不过,其中没有任何线索。我检查了/usr/local/var/log/kafka/kafka_output.log
,不幸的是,它没有包含您描述的消息。与/deletation/i
匹配的唯一消息是日志,因为分区重命名为。-delete,并计划删除(kafka.Log.LogManager)
我指的是控制器日志。在任何时候,集群中的一个代理都应该是控制器。默认情况下,它将其操作记录在名为controller.log
:啊,对了。在/usr/local/cillar/kafka/1.1.0/libexec/logs/controller.log
找到该文件。它似乎每小时旋转一次。不过,他们都没有线索
$ brew list --versions kafka
kafka 1.1.0