从Zookeeper中删除主题

时间:2020-03-18 11:08:04

标签: apache-kafka apache-zookeeper kafka-topic

我已使用以下命令直接从Zookeeper中删除了主题,并且之前未从Kafka中执行删除操作:

zookeeper-shell.sh localhost:2181 rmr /brokers/topics/<topic_name>

现在,我看到的是该主题出现在群集中至少一个代理的log.dirs中。有没有一种可以删除的方法。

当我现在尝试从kafka删除时,它会引发以下错误

Error while executing topic command : Topic <topic_name> does not exist on ZK path <zookeeper_server_list:2181>

1 个答案:

答案 0 :(得分:1)

我认为您错过了几个步骤。为了手动删除主题,您需要按照以下步骤操作:

1)停止Kafka服务器

2)在每个经纪人上,您必须删除logs.dirs下的所有主题的日志文件:

rm -rf path/to/logs/topic_name/

3)从Zookeeper中删除主题目录:

> zookeeper-shell.sh localhost:2181
> ls /brokers/topics
> rmr /brokers/topics/topic_name

4)重新启动Kafka服务器


请注意,删除主题的建议方法是

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

假设delete.topic.enable=true