Wie kann ich ein Thema in Apache Kafka löschen? [duplicate]

Lesezeit: 3 Minuten

Rishi Aroras Benutzeravatar
Rishi Arora

Ich muss ein Thema in Kafka 0.8.2.2.3 löschen. Ich habe den folgenden Befehl zum Löschen des Themas verwendet:

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

Der Befehl wurde erfolgreich ausgeführt, aber als ich einen Befehl ausführte, um die Themen aufzulisten, konnte ich sehen, dass das Thema immer noch vorhanden ist und angezeigt wird zum Löschen markiert.

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

Und wenn ich das Thema DummyTopic erstelle, wird die Ausnahme ausgegeben. Das Thema existiert bereits und unten ist der Stacktrace:

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)

Wie kann ich dieses Thema löschen?

  • Apache Kafka löscht niemals ein zum Löschen markiertes Thema, wenn zu diesem Thema noch Produzenten produzieren, Konsumenten noch daraus konsumieren oder Nachrichten in der Warteschlange verbleiben. Eine Möglichkeit, dies zu erzwingen, besteht darin, Kafka neu zu starten. Oder wenn das nicht funktioniert, gehen Sie unter die Haube und löschen Sie das Verzeichnis, das Ihr Themenname ist, unter /var/local/kafka/data. Starten Sie dann Kafka neu und geben Sie dann den Löschbefehl erneut aus. Ich wünschte, Apache Kafka hätte eine Option zum „Nukle the Bleeping Topic“, damit der Entwickler den Befehl erteilen kann: „Wirklich, dieses Mal geht es mir wirklich gut, bitte keine Frechheit.“

    – Eric Leschinski

    7. September 2016 um 21:07 Uhr


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

    – Avinav Mishra

    21. Februar 2017 um 2:16

  • Die Option zookeeper ist veraltet. Verwenden Sie stattdessen –bootstrap-server. stackoverflow.com/a/53429129/5456789

    – Amir Azizkhani

    6. Juli 2022 um 10:40 Uhr

  • Das hat bei mir funktioniert (innerhalb von Docker): bin/kafka-topics –delete –topic DummyTopic –bootstrap-server localhost:29092

    – Enrico Giurin

    28. November 2022 um 3:46

Benutzeravatar von Ravindra Babu
Ravindra Babu

Das Löschen eines Themas wird seit Version 0.8.2.x unterstützt. Sie müssen das Löschen von Themen aktivieren (Einstellung). delete.topic.enable zu true) zuerst bei allen Brokern.

Hinweis: Da die Funktionalität seit 1.0.x stabil ist, delete.topic.enable ist standardmäßig true.

Befolgen Sie diesen Schritt-für-Schritt-Prozess zum manuellen Löschen von Themen

  1. Stoppen Kafka Server
  2. Löschen Sie jeweils das Themenverzeichnis Makler (wie in der definiert logs.dirs Und log.dir Eigenschaften) mit rm -rf Befehl
  3. Verbunden mit Tierpfleger Beispiel: zookeeper-shell.sh host:port
  4. Von innen heraus Tierpfleger Beispiel:
    1. Listen Sie die Themen auf mit: ls /brokers/topics
    2. Entfernen Sie den Themenordner aus Zookeeper mit: rmr /brokers/topics/yourtopic
    3. Beenden Sie die Zookeeper-Instanz (Strg+C)
  5. Neu starten Kafka Server
  6. Bestätigen Sie mit diesem Befehl, ob es gelöscht wurde oder nicht
    kafka-topics.sh --list --zookeeper host:port

  • Link ist kaputt!

    – Rubbal

    1. Februar 2017 um 9:39 Uhr

  • Wo ist das Verzeichnis „/brokers/topics“? Ich kann diesen Ordner anscheinend nicht finden

    – Vipresh

    20. Juli 2017 um 11:41

  • Ich kann nicht glauben, dass es so schwierig ist, ein Thema zu löschen

    – Erik K

    16. August 2019 um 20:50 Uhr

  • rmr Der Befehl ist veraltet. Sie können verwenden deleteall anstatt rmr

    – Nafaz MNM

    2. November 2020 um 16:35 Uhr

  • Ich besuche diese Antwort alle paar Wochen. Manchmal mehrmals in der Woche.

    – Neelesh

    23. Juni 2021 um 7:04

1454080cookie-checkWie kann ich ein Thema in Apache Kafka löschen? [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy