我需要删除Apache Kafka 0.8.1.1中的主题test
。
如documentation here所述,我执行了:
bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic test
但是,这会产生以下消息:
Command must include exactly one action: --list, --describe, --create or --alter
如何删除此主题?
答案 0 :(得分:96)
删除主题并不总是在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.
答案 1 :(得分:95)
由于已知错误(https://issues.apache.org/jira/browse/KAFKA-1397),Kafka 0.8.1.x中似乎没有正式记录删除命令。
尽管如此,该命令仍然在代码中提供,可以执行:
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
答案 2 :(得分:37)
在$ {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
答案 3 :(得分:10)
安德烈是对的。我们可以使用命令行来完成它。
我们仍然可以通过
编程ZkClient zkClient = new ZkClient("localhost:2181", 10000);
zkClient.deleteRecursive(ZkUtils.getTopicPath("test2"));
实际上我不建议您删除Kafka 0.8.1.1上的主题。我可以通过这种方法删除这个主题,但是如果你检查zookeeper的日志,删除就搞砸了。
答案 4 :(得分:4)
您可以从zookeeper shell命令(test
)中删除特定的kafka主题(例如:zookeeper-shell.sh
)。使用以下命令删除主题
rmr {path of the topic}
示例:
rmr /brokers/topics/test
答案 5 :(得分:4)
删除Kafka中的一个或多个主题的步骤
1. Go to {kafka_home}/config/server.properties
2. Uncomment delete.topic.enable=true
kafka-topics.sh --delete --zookeeper localhost:2181 --topic
(适用于测试目的,我创建了多个主题,并且必须为不同的场景删除它们)
bin / kafka-topics.sh --list --zookeeper localhost:2181
如果未列出任何主题,则所有主题都已成功删除。如果列出了主题,则删除操作不成功。再次尝试上述步骤或重新启动计算机。
答案 6 :(得分:2)
此步骤将删除所有主题和数据
答案 7 :(得分:2)
命令:
bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic test
不幸的是,仅标记要删除的主题。
删除不会发生。
在测试准备Kafka配置的任何脚本时会产生麻烦。
连接线程:
答案 8 :(得分:1)
如文档here
中所述默认情况下禁用主题删除选项。要启用它,请设置服务器配置 delete.topic.enable =真 Kafka目前不支持减少主题的分区数或更改复制因子。
确保delete.topic.enable = true
答案 9 :(得分:1)
添加上述答案时,必须删除与zookeeper消费者偏移路径中该主题相关联的元数据。
bin/zookeeper-shell.sh zookeeperhost:port
rmr /consumers/<sample-consumer-1>/offsets/<deleted-topic>
否则,基于zookeeper的kafka监控工具的延迟将为负。
答案 10 :(得分:1)
bin / kafka-topics.sh -delete -zookeeper localhost:2181 -topic
答案 11 :(得分:0)
如果在删除主题时遇到问题,请尝试使用以下方式删除主题:
$KAFKA_HOME/bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic your_topic_name
命令。然后,为了验证删除过程,请转到通常位于/tmp/kafka-logs/
下的kafka日志目录,然后通过your_topic_name
命令删除rm -rf your_topic_name
文件。
请记住要通过诸如Kafka Tool
之类的kafka管理工具监视整个过程。
上面提到的过程将在不重启kafka服务器的情况下删除主题。
答案 12 :(得分:0)
第1步:确保您已连接到Zookeeper和正在运行的Kafka
第2步:要删除Kafka主题,请运行Kafka-topic(Mac)或Kafka-topic.sh(如果使用的话)(Linux / Mac),添加端口和--topic以及主题名称,并--delete删除即可成功的话题。
# Delete the kafka topic
# it will delete the kafka topic
kafka-topics --zookeeper 127.0.0.1:2181 --topic name_of_topic --delete
# or
kafka-topics.sh --zookeeper 127.0.0.1:2181 --topic name_of_topic --delete
答案 13 :(得分:0)
首先,运行此命令以删除主题:
$ bin/kafka-topics.sh --delete --bootstrap-server localhost:9092 --topic <topic_name>
列出活动主题以检查是否完全删除:
$ bin/kafka-topics.sh --list --bootstrap-server localhost:9092
答案 14 :(得分:0)
实际上有一个解决方案,无需触及那些 bin/kafka-*.sh
:如果您已经安装了 kafdrop
,那么只需执行:
url -XPOST http://your-kafdrop-domain/topic/THE-TOPIC-YOU-WANT-TO-DELETE/delete