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