Как удалить тему в apache kafka
Мне нужно удалить тему в kafka-0.8.2.2.3. Я использовал приведенную ниже команду для удаления темы:
bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic DummyTopic
Команда выполнена успешно, но когда я запускаю команду для перечисления тем, я мог видеть, что тема все еще существует, и она показывает , помеченный для удаления.
bin/kafka-topics.sh --list --zookeeper localhost:2181
DummyTopic - marked for deletion
И когда я создаю тему DummyTopic, он выдает исключение, тема уже существует, ниже - трассировка стека:
Error while executing topic command Topic "DummyTopic" already exists.
kafka.common.TopicExistsException: Topic "DummyTopic" already exists.
at kafka.admin.AdminUtils$.createOrUpdateTopicPartitionAssignmentPathInZK(AdminUtils.scala:248)
at kafka.admin.AdminUtils$.createTopic(AdminUtils.scala:233)
at kafka.admin.TopicCommand$.createTopic(TopicCommand.scala:92)
at kafka.admin.TopicCommand$.main(TopicCommand.scala:54)
at kafka.admin.TopicCommand.main(TopicCommand.scala)
Пожалуйста, дайте мне знать, как я могу удалить эту тему.
Ответы
Ответ 1
Удаление темы поддерживается с версии 0.8.2.x. delete.topic.enable
вы должны разрешить удаление темы (установив delete.topic.enable
в значение true) для всех брокеров.
Примечание. Начиная с версии 1.0.x функциональность стабильна, по умолчанию true
. delete.topic.enable
.
Выполните этот шаг за шагом процесс ручного удаления тем
- Стоп Кафка сервер
- Удалите каталог темы у каждого посредника (как определено в свойствах
logs.dirs
и log.dir
) с помощью команды rm -rf
- Подключитесь к экземпляру Zookeeper:
zookeeper-shell.sh host:port
- Из экземпляра Zookeeper:
- Перечислите темы, используя:
ls/brokers/topics
- Удалите папку с темами из ZooKeeper, используя:
rmr/brokers/topics/yourtopic
- Выход из экземпляра Zookeeper (Ctrl + C)
- Перезагрузите сервер Kafka
- Подтвердите, был ли он удален, с помощью этой команды
kafka-topics.sh --list --zookeeper host:port