Подтвердить что ты не робот

Как удалить тему в 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)

Пожалуйста, дайте мне знать, как я могу удалить эту тему.

4b9b3361

Ответ 1

Удаление темы поддерживается с версии 0.8.2.x. delete.topic.enable вы должны разрешить удаление темы (установив delete.topic.enable в значение true) для всех брокеров.

Примечание. Начиная с версии 1.0.x функциональность стабильна, по умолчанию true. delete.topic.enable.

Выполните этот шаг за шагом процесс ручного удаления тем

  1. Стоп Кафка сервер
  2. Удалите каталог темы у каждого посредника (как определено в свойствах logs.dirs и log.dir) с помощью команды rm -rf
  3. Подключитесь к экземпляру Zookeeper: zookeeper-shell.sh host:port
  4. Из экземпляра Zookeeper:
    1. Перечислите темы, используя: ls/brokers/topics
    2. Удалите папку с темами из ZooKeeper, используя: rmr/brokers/topics/yourtopic
    3. Выход из экземпляра Zookeeper (Ctrl + C)
  5. Перезагрузите сервер Kafka
  6. Подтвердите, был ли он удален, с помощью этой команды kafka-topics.sh --list --zookeeper host:port