Wie kann ich überprüfen, ob ZooKeeper ausgeführt wird oder an der Eingabeaufforderung ausgeführt wird?

77

Ich habe einige Optionen zum Einrichten von Kafka untersucht und wusste, dass der Zookeeper betriebsbereit sein muss, um ein Kafka zu initiieren.

Ich würde gerne wissen, wie ich das unten finden kann.

1) Hostname und Port für meine Zookeeper-Instanz --- Ich habe die Datei zoo.cfg überprüft und konnte nur den ClientPort finden, nicht den Hostnamen. Wird der Hostname der Hostname meiner Box sein?

2) Um zu überprüfen, ob ZooKeeper läuft, habe ich versucht, etwas zu tun, bei dem ps -ef | grep "zoo"ich nichts finden konnte. Kann ich ein falsches Schlüsselwort für die Suche verwenden?

Jede Hilfe wäre wirklich dankbar?

Suren Baskaran
quelle
Meinst du from the command prompt on zookeeper's node?oderfrom the client node's command prompt?
Jesse Chisholm

Antworten:

78

Um zu überprüfen, ob Zookeeper zugänglich ist. Eine Methode besteht darin, einfach an den richtigen Port zu telneten und den Befehl stats auszuführen.

root@host:~# telnet localhost 2181
Trying 127.0.0.1...
Connected to myhost.
Escape character is '^]'.
stats
Zookeeper version: 3.4.3-cdh4.0.1--1, built on 06/28/2012 23:59 GMT
Clients:

Latency min/avg/max: 0/0/677
Received: 4684478
Sent: 4687034
Outstanding: 0
Zxid: 0xb00187dd0
Mode: leader
Node count: 127182
Connection closed by foreign host.
Haoyuan Ge
quelle
4
Telnet ist oft nicht verfügbar / auf den Servern installiert
Vijay Kumar
3
'stats' funktioniert unter Windows nicht. Versuchen Sie stattdessen 'srvr'.
Xieyi
81

Eine andere Möglichkeit wäre die Verwendung von 4-Buchstaben-Befehlen, um zu überprüfen, ob der Zookeeper-Dienst fehlerfrei ist oder nicht

echo stat | nc <zookeeper ip> 2181
echo mntr | nc <zookeeper ip> 2181
echo isro  | nc <zookeeper ip> 2181

Weitere Details finden Sie unter dem Dokumentationslink unter https://zookeeper.apache.org/doc/r3.1.2/zookeeperAdmin.html#sc_zkCommands

Mehul
quelle
8
echo ruok | nc <zookeeper ip> 2181Gibt nur "imok" zurück, wenn es in Ordnung ist. Das ist wahrscheinlich am einfachsten zu analysieren.
Mitchell Tracy
ncist möglicherweise nicht in allen Umgebungen verfügbar.
Jesse Chisholm
19
echo stat | nc localhost 2181 | grep Mode
echo srvr | nc localhost 2181 | grep Mode #(From 3.3.0 onwards)

Oben funktioniert in jedem Modus, den Zookeeper ausführt (eigenständig oder eingebettet).

Ein anderer Weg

Wenn zookeeper im Standalone-Modus ausgeführt wird, handelt es sich um einen JVM-Prozess. damit -

jps | grep Quorum

zeigt eine Liste der JVM-Prozesse an; so etwas für Tierpfleger mit Prozess-ID

HQuorumPeer
Kaidul
quelle
15

Ich habe einen Test gemacht:

Wenn es läuft:

$ /usr/lib/zookeeper/bin/zkServer.sh status
JMX enabled by default
Using config: /usr/lib/zookeeper/bin/../conf/zoo.cfg
Mode: follower

Wenn es gestoppt ist:

$ zkServer status                                                                                                                                
JMX enabled by default
Using config: /usr/local/etc/zookeeper/zoo.cfg
Error contacting service. It is probably not running.

Ich laufe nicht auf demselben Computer, aber Sie haben die Idee.

laike9m
quelle
7

Geben Sie den folgenden Befehl ein, um zu überprüfen, ob zookeeper ausgeführt wird:

echo "ruok" | nc localhost 2181 ; echo 

erwartete Antwort: imok

GV Sridhar
quelle
6

Zookeeper ist nur ein Java-Prozess, und wenn Sie eine Zookeeper-Instanz starten, wird eine org.apache.zookeeper.server.quorum.QuorumPeerMainKlasse ausgeführt. So können Sie nach einem laufenden Zookeeper wie folgt suchen:

jps -l | grep zookeeper

oder sogar so:

jps | grep Quorum

upd:

dazu: will hostname be the hostname of my box??- die Antwort lautet ja.

serejja
quelle
3

Ich benutze:

  jps

Abhängig von Ihrer Installation würde ein laufender Zookeeper aussehen

  HQuorumPeer

oder etw. mit Tierpfleger im Namen.

Christian Wirth
quelle
0

Von einem Windows 10

  • Öffnen Sie die Eingabeaufforderung, geben telnet localhost 2181Sie ein und geben Sie srvr ODER ein
  • Öffnen Sie im Ordner bin ein PowerShell-Fenster und geben Sie ein zkServer.sh status
Oana
quelle