我正在使用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.
有什么想法吗?我该如何删除主题及其数据。
答案 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)
使用以下命令
bin / kafka-topics.sh --delete --zookeeper localhost:2181 - topic test
即使未删除主题,也请按照后续步骤操作。
打开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
,它才会有用。
我刚才发现了。