web-dev-qa-db-fra.com

Comment supprimer un sujet dans Apache kafka

Je dois supprimer un sujet dans kafka-0.8.2.2.3. J'ai utilisé la commande ci-dessous pour supprimer le sujet:

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

La commande a été exécutée avec succès, mais lorsque je lance une commande pour répertorier les sujets, je constate que le sujet est toujours présent et qu'il affiche marqué pour suppression.

bin/kafka-topics.sh --list --zookeeper localhost:2181
DummyTopic - marked for deletion

Et quand je crée le sujet DummyTopic, il génère l'exception, le sujet existe déjà, en dessous se trouve la trace de la pile:

Error while executing topic command Topic "DummyTopic" already exists.
kafka.common.TopicExistsException: Topic "DummyTopic" already exists.
    at kafka.admin.AdminUtils$.createOrUpdateTopicPartitionAssignmentPathInZK(AdminUtils.scala:248)
    at kafka.admin.AdminUtils$.createTopic(AdminUtils.scala:233)
    at kafka.admin.TopicCommand$.createTopic(TopicCommand.scala:92)
    at kafka.admin.TopicCommand$.main(TopicCommand.scala:54)
    at kafka.admin.TopicCommand.main(TopicCommand.scala)

S'il vous plaît laissez-moi savoir comment puis-je supprimer ce sujet.

62
Rishi Arora

La suppression d’une rubrique est prise en charge depuis la version 0.8.2.x. Vous devez d'abord activer la suppression de la rubrique (en définissant delete.topic.enable sur true) sur tous les courtiers.

Remarque: Depuis 1.0.x, la fonctionnalité étant stable, delete.topic.enable est par défaut true.

Suivez cette procédure étape par étape pour la suppression manuelle de sujets.

  1. Arrêtez Kafka serveur
  2. Supprimez le répertoire de sujet, sur chaque courtier (comme défini dans les propriétés logs.dirs et log.dir) à l'aide de la commande rm -rf
  3. Connectez-vous à Zookeeper instance: zookeeper-Shell.sh Host:port
  4. Depuis l’instance Zookeeper:
    1. Répertoriez les sujets en utilisant: ls /brokers/topics
    2. Supprimez le dossier de sujet de ZooKeeper using: rmr /brokers/topics/yourtopic
    3. Quitter l'occurrence de Zookeeper (Ctrl + C)
  5. Redémarrer Kafka serveur
  6. Confirmez s'il a été supprimé ou non en utilisant cette commande kafka-topics.sh --list --zookeeper Host:port
79
Ravindra babu