Как очистить или удалить тему в версии kafka 2.1.0 - PullRequest
0 голосов
/ 27 января 2019

Хотел бы поделиться различными способами очистки или удаления темы kafka в версии 2.1.0. Я нашел подобный вопрос здесь Тема Purge Kafka , однако, принятый ответ устарел, и он работает на Kafka версии 0.8 и ниже, создавая этот вопрос с ответом.

Это не повторяющийся вопрос.

1 Ответ

0 голосов
/ 27 января 2019

Кафка по умолчанию хранит сообщения в течение 168 часов, что составляет 7 дней. Если вы хотите заставить kafka очистить тему, вы можете сделать это несколькими способами. Давайте рассмотрим каждую деталь.

1. Использование команды kafka-configs.sh

Временно изменить политику хранения на 1 сек.

kafka-configs.sh --zookeeper localhost:2181 --alter --entity-type topics --add-config retention.ms=1000 --entity-name text_topic

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

kafka-configs.sh --zookeeper localhost:2181 --entity-type topics --describe --entity-name text_topic
Configs for topic 'text_topic' are retention.ms=1000

Подождите 1 секунду и удалите конфигурацию политики хранения, которая вернет значение по умолчанию.

kafka-configs.sh --zookeeper localhost:2181 --alter --entity-type topics --delete-config retention.ms --entity-name text_topic

2. Удалить тему и заново создать

Прежде чем удалить существующую тему, сначала получите раздел и реплику текущей темы, так как они понадобятся вам для воссоздания темы. Вы можете получить эту информацию, запустив описание темы

kafka-topics.sh --zookeeper localhost:2181 --describe --topic text_topic

Topic:text_topic        PartitionCount:3        ReplicationFactor:3     Configs:
        Topic: text_topic       Partition: 0    Leader: 0       Replicas: 0     Isr: 0

Удалить тему.

kafka-topics.sh --zookeeper localhost:2181 --delete --topic text_topic

Повторно создайте тему с подробностями репликации и раздела.

kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 3 --topic text_topic

3. Удалите данные из журналов kafka вручную.

  1. Остановите зоокейпера и кафку со всех узлов.
  2. Очистить логи кафки со всех узлов. Кафка хранит свои журналы на / tmp / kafka-logs / MyTopic-0, где / tmp / kafka-logs определяется log.dirattribute
  3. Перезапустите зоокейпер и кафку.

Надеюсь, это поможет !!

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