Я ищу способ удалить тему или все ее сообщения, используя kafkacat. Возможно ли это или единственный способ - через здесь скрипт?

bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic mytopic
7
1Z10 19 Апр 2019 в 12:57

2 ответа

Лучший ответ

На этой стадии в kafkacat нет функции удаления темы в соответствии с man-страницей и исходным кодом github. Таким образом, единственный способ - использовать скрипт kafka-themes.

исходный код github

страница руководства

kafkacat является универсальным производителем и потребителем не JVM для Apache Kafka 0.8, рассматривая его как netcat для Kafka.

 In producer mode ( -P ), kafkacat reads messages from stdin, delimited with a configurable
 delimeter and produces them to the provided Kafka cluster, topic and partition. In consumer
 mode ( -C ), kafkacat reads messages from a topic and partition and prints them to stdout
 using the configured message delimiter.

 If neither -P or -C are specified kafkacat attempts to figure out the mode automatically
 based on stdin/stdout tty types.

 kafkacat also features a metadata list mode ( -L ), to display the current state of the
 Kafka cluster and its topics and partitions.
2
Hichem BOUSSETTA 19 Апр 2019 в 11:45

Да, это возможно.

Но сначала Вам нужно разрешить удаление тем на всех брокерах. замените delete.topic.enable на true. По умолчанию это false (в файле server.properties)

Затем используйте команду удаления темы.

bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic mytopic

Если вы хотите удалить эту тему навсегда, вы можете использовать команду удаления zookeeper.

  1. Перечислите существующие темы: ./zookeeper-shell.sh localhost:2181 ls /brokers/topics
  2. Удалить тему: ./zookeeper-shell.sh localhost:2181 rmr /brokers/topics/yourtopic
-2
Naween Banuka 19 Апр 2019 в 10:33