关于删除Kafka主题的困惑
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于删除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.
有什么想法吗?我该如何删除主题及其数据。
我的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)。
- 请确保,在kafka config.properties文件中,“delete.topic.enable”属性应为true。
- 使用以下命令 bin / kafka-topics.sh --delete --zookeeper localhost:2181 - topic test
即使未删除主题,也请按照后续步骤操作。
- open terminal zookeeper客户端模式: A.停止动物园管理员 B. rmr /经纪人/主题 C.使用以下命令检查给定主题 /bin/kafka-topics.sh --zookeeper maxiq:2181 --list
如果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提到的步骤
删除kafka第1步中的主题 - >> cd / usr / lib / zookeeper / bin
第2步 - >> zkCli.sh -server 127.0.0.1:2181
第3步 - >> rmr / brokers / topics / topic_name
最好和容易使delete.topic.enable=true
不修改server.property
文件。
因为,如果kafka从ambari重新启动,它将再次覆盖此文件delete.topic.enable =false
。
只有在ambari,点击kafak/config/advance kafka broker/delete.topic.enable =true
,它才会起作用。
我刚才发现了。
以上是关于关于删除Kafka主题的困惑的主要内容,如果未能解决你的问题,请参考以下文章
对使用新的 Kafka 幂等生产者 API 防止重复感到困惑