Je cherche un moyen de supprimer un sujet ou tous ses messages en utilisant kafkacat
.
Est-ce possible ou le seul moyen est d'utiliser le script répertorié ici ?
bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic mytopic
3 Réponses :
Il n'y a pas de fonction de suppression de sujet à ce stade dans kafkacat selon la page de manuel et le code source de github. Le seul moyen est donc d'utiliser le script kafka-topics.
kafkacat est un producteur et consommateur générique non JVM pour Apache Kafka 0.8, considérez-le comme un netcat pour 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.
Oui, c'est possible.
Mais d'abord, vous devez activer la suppression de sujets sur tous les courtiers.
remplacez delete.topic.enable
par true
.
Par défaut, c'est false
(dans le fichier server.properties
)
Ensuite, Utilisez la commande de suppression de sujet.
bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic mytopic
Si vous souhaitez supprimer définitivement ce sujet, Vous pouvez utiliser la commande de suppression du gardien de zoo.
./zookeeper-shell.sh localhost: 2181 ls / brokers / topics
./zookeeper-shell.sh localhost: 2181 rmr / brokers / topics / yourtopic
Je veux juste montrer pourquoi tu as des inconvénients. La question est "Puis-je supprimer le sujet d'une autre manière que kafka-topics.sh
?". Et votre réponse est "Oui, c'est kafka-topics.sh
".
Mais vous avez manqué la deuxième partie zookeeper-shell.sh
Comme l'a souligné @Naween Banuka, vous pouvez également utiliser zookeeper-shell.sh ou zkCli.sh (trouvé sous zookeeper / bin) pour faire ceci:
Répertoriez les sujets existants: ./zookeeper-shell.sh localhost: 2181 ls / brokers / topics
Supprimer le sujet: ./zookeeper-shell.sh localhost: 2181 rmr / brokers / topics / yourtopic