删除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了多个主题,必须在不同情况下删除它们)
- 停止Kafka服务器和Zookeeper
- 转到存储日志的/ tmp文件夹,然后手动删除kafkalogs和zookeeper文件夹
- 重新启动zookeeper和kafka服务器并尝试列出主题,
bin / kafka-topics.sh –list –zookeeper localhost:2181
如果没有主题列出,则所有主题都已成功删除。如果列出主题,则删除不成功。 再次尝试上述步骤或重新启动您的计算机。