Удалить тему в Kafka 0.8.1.1
Мне нужно удалить тему test
в Apache Kafka 0.8.1.1.
Как указано в документации здесь, я выполнил:
bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic test
Однако это приводит к следующему сообщению:
Command must include exactly one action: --list, --describe, --create or --alter
Как удалить эту тему?
Ответы
Ответ 1
Удаление темы не всегда работает в 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.
Можно ли удалить тему?
Джира КАФКА-1397
Ответ 2
Кажется, что команда удаления официально не была зарегистрирована в Kafka 0.8.1.x из-за известной ошибки (https://issues.apache.org/jira/browse/KAFKA-1397).
Тем не менее, команда по-прежнему была отправлена в код и может быть выполнена как:
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
Ответ 3
Добавьте строку ниже в ${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
Ответ 4
Андреа прав. мы можем сделать это с помощью командной строки.
И мы все еще можем запрограммировать его,
ZkClient zkClient = new ZkClient("localhost:2181", 10000);
zkClient.deleteRecursive(ZkUtils.getTopicPath("test2"));
На самом деле я не рекомендую удалять тему на Kafka 0.8.1.1. Я могу удалить эту тему с помощью этого метода, но если вы проверите журнал для zookeeper, удалите его.
Ответ 5
Вы можете удалить конкретную тему kafka (пример: test
) из команды оболочки zookeeper (zookeeper-shell.sh
). Используйте приведенную ниже команду, чтобы удалить тему
rmr {path of the topic}
Пример:
rmr /brokers/topics/test
Ответ 6
Шаги по удалению 1 или более тем в Кафке
Чтобы удалить темы в kafka, необходимо включить параметр удаления на сервере Kafka.
1. Go to {kafka_home}/config/server.properties
2. Uncomment delete.topic.enable=true
Удалить одну тему в Kafka введите следующую команду
kafka-topics.sh --delete --zookeeper localhost: 2181 --topic
Чтобы удалить более одной темы из kafka
(полезно для тестирования, где я создал несколько тем и должен был удалить их для разных сценариев)
- Остановить сервер Kafka и Zookeeper
- перейдите в папку /tmp, где хранятся журналы, и вручную удалите папки kafkalogs и zookeeper.
- Перезапустите zookeeper и kafka сервер и попробуйте указать темы,
bin/kafka-topics.sh --list --zookeeper localhost: 2181
Если темы не указаны, все темы удалены успешно. Если темы указаны, то удаление не было успешным. Повторите вышеуказанные шаги или перезагрузите компьютер.
Ответ 7
В этом шаге будут удалены все темы и данные
- Остановить сервер Kafka и Zookeeper-сервер
- Удалите каталоги данных tmp обеих служб, по умолчанию они
C:/tmp/kafka-logs и C:/tmp/zookeeper.
- затем запустите Zookeeper-сервер и Kafka-сервер
Ответ 8
Команда:
bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic test
к сожалению, только отмечает тему для удаления.
Удаление не происходит.
Это создает проблемы при тестировании любых скриптов, которые готовят конфигурацию Kafka.
Связанные потоки:
Ответ 9
Как упоминалось в doc здесь
Опция удаления темы по умолчанию отключена. Чтобы включить его, установите конфигурацию сервера delete.topic.enable = верно В настоящее время Kafka не поддерживает сокращение количества разделов для темы или изменение коэффициента репликации.
Убедитесь, что delete.topic.enable = true
Ответ 10
При добавлении к выше ответам необходимо удалить метаданные, связанные с этим тестом, в пути смещения потребителя zookeeper.
bin/zookeeper-shell.sh zookeeperhost:port
rmr /consumers/<sample-consumer-1>/offsets/<deleted-topic>
В противном случае отставание будет отрицательным в инструментах мониторинга кафки на основе zookeeper.
Ответ 11
bin/kafka-topics.sh –delete –zookeeper localhost:2181 –topic <topic-name>
Ответ 12
Если у вас есть проблемы с удалением тем, попробуйте удалить тему, используя:
$KAFKA_HOME/bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic your_topic_name
команда. Затем, чтобы проверить процесс удаления, перейдите в каталог журналов kafka, который обычно находится в /tmp/kafka-logs/
, затем удалите файл your_topic_name
помощью команды rm -rf your_topic_name
.
Не забудьте контролировать весь процесс с помощью инструмента управления kafka, такого как Kafka Tool
.
Упомянутый выше процесс удалит темы без перезапуска сервера kafka.
Ответ 13
Шаг 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
Ответ 14
Сначала вы запускаете эту команду для удаления вашей темы:
$ bin/kafka-topics.sh --delete --bootstrap-server localhost:9092 --topic <topic_name>
Список активных тем, чтобы проверить удалить полностью:
$ bin/kafka-topics.sh --list --bootstrap-server localhost:9092