Listen Sie alle Kafka-Themen auf


78

Ich benutze Kafka 0.10 ohne Zookeeper . Ich möchte eine Liste mit Kafka-Themen erhalten. Dieser Befehl funktioniert nicht, da wir zookeeper nicht verwenden : bin/kafka-topics.sh --list --zookeeper localhost:2181. Wie kann ich ohne Zookeeper die gleiche Ausgabe erhalten?


/usr/local/kafka/bin/kafka-topics.sh --list --zookeeper localhost:2181
— Adiii

Antworten:


135

Kafka verwendet ZooKeeper, daher müssen Sie zuerst einen ZooKeeper-Server starten, falls Sie noch keinen haben.

Wenn Sie keinen separaten Zookeeper-Server installieren und haben möchten, können Sie das mit kafka gelieferte Convenience-Skript verwenden, um eine schnelle und fehlerhafte ZooKeeper-Instanz mit einem Knoten zu erhalten.

Starten der Zookeeper-Instanz mit einem Knoten:

bin/zookeeper-server-start.sh config/zookeeper.properties

Starten des Kafka-Servers:

bin/kafka-server-start.sh config/server.properties

Auflistung der in Kafka verfügbaren Themen:

bin/kafka-topics.sh --list --zookeeper localhost:2181

2
Ich brauche eine Lösung ohne Tierpfleger. Gibt es einen anderen Befehl als diesen, um alle Themen ohne Zookeeper aufzulisten?
— SSR

5
Ich denke nicht, dass es möglich ist, Kafka auch ohne Zookeeper zu verwenden, da der Status von Kafka im Zookeeper gespeichert ist. Wie haben Sie das erreicht?
— Daniccan

Wenn Sie nach einem Befehl suchen, um dies zu tun, dann stackoverflow.com/questions/40034074/…
— Peru

Wenn Ihr Zookeeper-Server ein benannter Host ist, müssen Sie den Hostnamen anstelle von localhostz ./kafka-topics.sh --list --zookeeper zookeeper:2181. Abhängig von Ihrer Konfiguration müssen Sie möglicherweise die IP-Adresse verwenden, z. B../kafka-topics.sh --list --zookeeper 10.10.10.180:2181
— Chris Halcrow,


28

Kafka 2.2 und höher

Neuere Versionen von Kafka benötigen keine ZooKeeper-Verbindungszeichenfolge mehr, um Themen aufzulisten, sondern können direkt über die Kafka-Broker aufgerufen werden. kafka-topics.shwird bin/beim Herunterladen von Kafka im Ordner bereitgestellt . Gehen Sie wie folgt vor, um Themen aufzulisten:

bin/kafka-topics.sh --list --bootstrap-server <BROKER-LIST>

1
Unter der Annahme, dass das OP "ohne die Option zookeeper cli" bedeutet - was wahrscheinlich ist, da kafka ohne zookeeper nicht funktioniert - sollte diese Antwort die akzeptierte Antwort für Kafka 2.2+ sein. Die CLI-Dokumente zeigen nun an, dass --zookeeper zugunsten von --bootstrap-server veraltet ist.
— Luke W

Dies ist eigentlich der beste Weg, wenn Sie in AWS mit ihrem MSK arbeiten. Andernfalls müssen Sie Ihren ZooKeeper-Dienst öffnen. Dies kann bei falscher Ausführung ein potenzielles Sicherheitsproblem darstellen.
— Michael Robinson

@MichaelRobinson hat gewährt, dass Sie MSK mit v2.2.1 und nicht mit v1.1.1 verwenden.
— Paul

Ja, mein Kommentar wurde in diesem Beitrag lokalisiert.
— Michael Robinson

19

Um dieses Thema zu sehen, wenn wir den Befehl list topic ausführen:

$ bin/kafka-topics.sh --list --zookeeper localhost:2181

So überprüfen Sie, ob die Daten in Kafka landen:

$ bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic twitterstream --from-beginning


19

Für dockerisierte Kafka / Tierpfleger

docker ps

Finden Sie Ihre Zookeeper Container ID

docker exec -it <id> bash

cd bin

./zkCli.sh

ls /brokers/topics

5

Befehle:

  1. So starten Sie die Kafka:

    $ nohup ~ / kafka / bin / kafka-server-start.sh ~ / kafka / config / server.properties> ~ / kafka / kafka.log 2> & 1 &

  2. Um alle Themen auf kafka aufzulisten;

    $ bin / kafka-topics.sh --list --zookeeper localhost: 2181

  3. Um die Daten zu überprüfen, landen Sie auf dem Kafka-Thema und drucken sie aus.

    $ bin / kafka-console-consumer.sh --bootstrap-server localhost: 9092 --topic your_topic_name --from-begin


4

Für Kafka ist ein Tierpfleger erforderlich, und die Liste der Themen wird dort gespeichert. Daher muss das Tool für Kafka-Themen auch eine Verbindung zum Tierpfleger herstellen. kafka-clients apis in den neueren versionen sprechen nicht mehr direkt mit zookeeper , vielleicht haben sie deshalb den eindruck, dass ein setup ohne zookeeper möglich ist. Dies ist nicht der Fall, da sich Kafka intern darauf verlässt. Referenz siehe: http://kafka.apache.org/documentation.html#quickstart Schritt 2:

Kafka verwendet ZooKeeper, daher müssen Sie zuerst einen ZooKeeper-Server starten, falls Sie noch keinen haben


3

Die Kafka-Clients benötigen keinen Zookeeper mehr, die Kafka-Server benötigen ihn jedoch für den Betrieb.

Mit der neuen AdminClient-API können Sie eine Liste mit Themen abrufen. Der mit Kafka gelieferte Shell-Befehl wurde jedoch noch nicht neu geschrieben, um diese neue API zu verwenden.

Die andere Möglichkeit, Kafka ohne Zookeeper zu verwenden, besteht darin, einen SaaS-Kafka-as-a-Service-Anbieter wie Confluent Cloud zu verwenden, damit Sie die Kafka-Broker (und das erforderliche Backend-Zookeeper-Ensemble) nicht sehen oder betreiben.

In Confluent Cloud würden Sie beispielsweise nur den folgenden zookeeper-freien CLI-Befehl verwenden:

ccloud topic list


1

Zookeeper ist erforderlich, um Kafka auszuführen. Tierpfleger ist ein Muss. Wenn Sie jedoch eine Themenliste ohne Zookeeper anzeigen möchten, benötigen Sie ein Kafka-Überwachungstool wie das Kafka-Überwachungstool, den Kafka-Manager usw.


1

Um Nachrichten zu lesen, sollten Sie Folgendes verwenden:

kafka-console-consumer.sh --bootstrap-server kafka1:9092,kafka2:9092,kafka3:9092 --topic messages --from-beginning

--bootstrap-serverist erforderlich Attribut. Sie können nur einen einzelnen kafka1:9020Knoten verwenden.


1

Sie müssen zuerst den Zookeeper-Server starten. Also gehe zuerst zu kafka / bin / windows und renne

zookeeper-server-start.bat ../../config/zookeeper.properties

Starten Sie dann im selben Ordner mit einem neuen Cmd-Fenster die Kafka-Server, indem Sie ausgeführt werden

kafka-server-start.bat ../../config/server.properties

Hinweis: Wenn Sie es zum ersten Mal starten, müssen bestimmte Änderungen an diesen Dateien vorgenommen werden

dann laufen in kafka / bin / windows

kafka-topics.bat --zookeeper localhost:2181 --list

um alle vorhandenen Themen aufzulisten.


0

Sie haben eine veraltete Version des Pakets mit Befehlen, die keinen Zookeeper mehr akzeptieren, sondern einen Bootstrap-Server als Verbindung. Confluent stellt dann eine interne Verbindung mit Zookeeper her.

https://www.confluent.io/download/ (5.3 oder höher)


0

Sie können versuchen, die folgenden zwei Befehle zu verwenden und alle Kafka-Themen aufzulisten

  • bin / kafka-topics.sh --describe --zookeeper 192.168.0.142:2181,192.168.9.115:2181,192.168.4.57:2181
  • bin / kafka-topics.sh --zookeeper 192.168.0.142:2181,192.168.9.115:2181,192.168.4.57:218 --list

0

Verwenden der REST-Proxy- API von Confluent :

curl -X GET -H "Accept: application/vnd.kafka.v2+json" localhost:8082/topics 

Wo localhost:8082ist die Kafka-Proxy-Adresse?

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.