Как удалить тему Кафки из кли? - PullRequest
0 голосов
/ 05 июня 2018
$ kafka-topics --zookeeper localhost:2181 --list | grep my-topic
my-topic
$ kafka-topics --zookeeper localhost:2181 --delete --topic my-topic
Topic my-topic is marked for deletion.
Note: This will have no impact if delete.topic.enable is not set to true.
$ kafka-topics --zookeeper localhost:2181 --list | grep my-topic
my-topic - marked for deletion

Прошло уже несколько часов, и тема до сих пор не удалена.

Я видел предложения, чтобы я положил delete.topic.enable в свой server.properties и перезапустил kafka.Я попробовал это.Это не сработало.

$ grep -F delete.topic.enable /usr/local/etc/kafka/server.properties
delete.topic.enable = true

(Почему бы не установить это по умолчанию?)

В любом случае, все эти предложения были для кафки 0. * и яв более новой версии.

$ brew list --versions kafka
kafka 1.1.0

Как удалить темы?

Я могу отключить kafka и zookeeper, запустить rm -r /usr/local/var/lib/kafka-logs /usr/local/var/run/zookeeper/data, затем снова запустить zookeeper и kafka.Но это довольно радикально.Конечно, должен быть какой-то способ убедить kafka-topics действительно удалить тему?

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

По предложению коллеги я

  • выключил Кафку и Zookeeper
  • добавил строку listeners=PLAINTEXT://127.0.0.1:9092 к /usr/local/etc/kafka/server.properties
  • перезапустил Zookeeper иКафка

Теперь я могу удалить темы снова.Я не знаю, почему это должно работать, но подозреваю, что это связано с недавним обновлением macOS.

0 голосов
/ 05 июня 2018

Команда, которую вы используете, является рекомендуемым способом удаления темы.

К сожалению, есть несколько причин, по которым тема может застрять в состоянии «помечено для удаления».

Если вы проверите журналы контроллера, вы можете увидеть, почему он не может удалить его.В журналах контроллера все строки из диспетчера удаления имеют префикс Topic Deletion Manager.

Периодически вы должны видеть сообщения типа Handling deletion for topics ....Если контроллер отказался от удаления, он должен был зарегистрировать его в следующем формате: Halted deletion of topics ....

Если вы хотите принудительно удалить, вы можете попробовать:

  • Удаление деталей темы в Zookeeper.Используя zookeeper-shell.sh, запустите rmr /brokers/topics/TOPIC_NAME
  • Отскок контроллера

Наконец, если ничего из этого не работает, вы можете, как намекнул, удалить данные журнала на диске /

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...