关于删除Kafka主题的困惑

时间:2016-01-23 02:05:53

标签: apache-kafka

我正在使用Kafka 0.8.0,它是Cloudera版本。 当我删除以下主题时:kafka-topics --zookeeper 10.0.0.11:2181/ --delete --topic test 它回应:

Topic test is already marked for deletion.

但之后我重新创建它,它会抛出异常,如下所示:

kafka-topics --create --zookeeper 10.0.0.11:2181 --partitions 90 --replication-factor 2 --topic test

Error while executing topic command Topic "test" already exists.
kafka.common.TopicExistsException: Topic "test" already exists.

有什么想法吗?我该如何删除主题及其数据。

5 个答案:

答案 0 :(得分:7)

我的Kakfa版本是kafka_2.10-0.8.2.2,以下链接适用于我(来自Delete topic in Kafka 0.8.1.1

${kafka_home}/config/server.properties

中添加以下行
delete.topic.enable=true   

使用新配置重新启动kafka服务器:

${kafka_home}/bin/kafka-server-start.sh ~/kafka/config/server.properties

删除您想要的主题:

${kafka_home}/bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic daemon12

来自Kafka FAQ的更多信息:

  

自0.8.2.x起支持删除主题。您需要启用   在所有代理上删除主题(将delete.topic.enable设置为true)   第一

答案 1 :(得分:5)

  1. 请确保,在kafka的config.poperties文件' delete.topic.enable'财产应该是真的。
  2. 使用以下命令

    bin / kafka-topics.sh --delete --zookeeper localhost:2181 - topic test

  3. 即使未删除主题,也请按照后续步骤操作。

    1. 打开terminal zookeeper客户端模式:

      一个。停止动物园管理员

      B中。 rmr / broker / topics

      ℃。使用以下命令检查给定主题

      /bin/kafka-topics.sh --zookeeper maxiq:2181 --list

答案 2 :(得分:2)

如果默认情况下delete.topic.enable设置为false,则执行--delete命令时不会删除主题(如命令响应中所示)。

Topic test is marked for deletion.
Note: This will have no impact if delete.topic.enable is not set to true.

为了克服这个问题,请使用@Shawn

提到的步骤

答案 3 :(得分:1)

删除kafka中的主题 步骤1 - >> cd / usr / lib / zookeeper / bin

步骤2 - >> zkCli.sh -server 127.0.0.1:2181

第3步 - >> rmr / brokers / topics / topic_name

答案 4 :(得分:0)

最好且易于制作delete.topic.enable=true不会修改server.property文件。

因为,如果kafka从ambari重新启动,它将再次覆盖此文件delete.topic.enable =false

只有在ambari,点击kafak/config/advance kafka broker/delete.topic.enable =true,它才会有用。

我刚才发现了。