删除Kafka 0.8.1.1中的主题

我需要删除Apache Kafka 0.8.1.1中的主题test

正如在这里的文件中所expression的,我已经执行了:

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

但是,这会导致以下消息:

 Command must include exactly one action: --list, --describe, --create or --alter 

我怎样才能删除这个话题?

删除主题并不总是在0.8.1.1中工作

删除应该在下一个版本0.8.2中工作

 kafka-topics.sh --delete --zookeeper localhost:2181 --topic your_topic_name Topic your_topic_name is marked for deletion. Note: This will have no impact if delete.topic.enable is not set to true. 

是否可以删除一个主题?

Jira KAFKA-1397

由于存在已知的错误( https://issues.apache.org/jira/browse/KAFKA-1397 ),删除命令似乎没有在Kafka 0.8.1.x中正式logging。

尽pipe如此,这个命令仍然是在代码中运行的,可以这样执行:

 bin/kafka-run-class.sh kafka.admin.DeleteTopicCommand --zookeeper localhost:2181 --topic test 

与此同时,该错误得到修复,删除命令现在可以从Kafka 0.8.2.0正式获得:

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

在$ {kafka_home} /config/server.properties中添加以下行

 delete.topic.enable=true 

用新的configuration重新启动kafka服务器:

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

删除你想要的主题:

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

安德烈是正确的。 我们可以使用命令行来完成。

我们仍然可以编程

 ZkClient zkClient = new ZkClient("localhost:2181", 10000); zkClient.deleteRecursive(ZkUtils.getTopicPath("test2")); 

其实我不build议你删除Kafka 0.8.1.1上的主题。 我可以通过这个方法删除这个主题,但是如果你检查日志zookeeper,删除就搞乱了。

您可以从zookeeper shell命令( zookeeper-shell.sh )中删除特定的kafka主题(例如: test )。 使用下面的命令删除主题

 rmr {path of the topic} 

例:

 rmr /brokers/topics/test 

这一步将删除所有主题和数据

  • 停止Kafka服务器和Zookeeper服务器
  • 删除这两个服务的tmp数据目录,默认情况下它们是C:/ tmp / kafka-logs和C:/ tmp / zookeeper。
  • 然后启动Zookeeper-server和Kafka-server

命令:

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

不幸的是只标记删除的主题。

删除不会发生。

这在testing准备Kafkaconfiguration的任何脚本的同时会造成麻烦。

连线:

  • 清除卡夫卡队列
  • 有没有办法在每次运行之前删除主题中的所有数据或删除主题?

添加上面的答案,你必须删除zookeeper消费者偏移path中与该主题相关的元数据。

bin/zookeeper-shell.sh zookeeperhost:port

rmr /consumers/<sample-consumer-1>/offsets/<deleted-topic>

否则,基于zookeeper的kafka监控工具的滞后将是负面的。

正如在这里 doc提到的

主题删除选项默认是禁用的。 要启用它,请设置服务器configurationdelete.topic.enable = true Kafka当前不支持减less主题的分区数量或更改复制因子。

确保delete.topic.enable = true

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

在Kafka中删除一个或多个主题的步骤

要删除kafka中的主题,需要在Kafka服务器中启用删除选项。

 1. Go to {kafka_home}/config/server.properties 2. Uncomment delete.topic.enable=true 

在Kafka中删除一个主题input以下命令

kafka-topics.sh –delete –zookeeper localhost:2181 –topic

从kafka删除多个主题

(适用于testing目的,我创build了多个主题,必须在不同情况下删除它们)

  1. 停止Kafka服务器和Zookeeper
  2. 转到存储日志的/ tmp文件夹,然后手动删除kafkalogs和zookeeper文件夹
  3. 重新启动zookeeper和kafka服务器并尝试列出主题,

bin / kafka-topics.sh –list –zookeeper localhost:2181

如果没有主题列出,则所有主题都已成功删除。如果列出主题,则删除不成功。 再次尝试上述步骤或重新启动您的计算机。