关于删除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)。

另一答案
  1. 请确保,在kafka config.properties文件中,“delete.topic.enable”属性应为true。
  2. 使用以下命令 bin / kafka-topics.sh --delete --zookeeper localhost:2181 - topic test

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

  1. 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 防止重复感到困惑

是否可以选择删除主题中超过一小时的 kafka 主题旧消息

如何在apache kafka中删除主题[重复]

Grafana:如何获取关于 kafka 内部主题的数据?

Confent Kafka Python生产者未使用ACKS =所有配置进行生产

kafka 2.1.0 版本中如何清除或删除主题