如何从命令提示符检查ZooKeeper是否正在运行?

Sur*_*ran 62 hadoop config ps apache-kafka apache-zookeeper

我正在探索设置kafka的几个选项,我知道Zookeeper必须启动并运行才能启动kafka.

我想知道如何找到以下内容.

1)我的zookeeper实例的主机名和端口---我检查了zoo.cfg,我只能找到ClientPort而不是主机名,hostname是我的盒子的主机名吗?

2)检查ZooKeeper是否正常运行---我试图做一个ps -ef | grep "zoo"我找不到的东西.可能是我用错了关键词来搜索?

任何帮助将非常感激?

Meh*_*hul 70

另一种方法是使用4个字母命令来验证zookeeper服务是否健康

echo stat | nc <zookeeper ip> 2181
echo mntr | nc <zookeeper ip> 2181
echo isro  | nc <zookeeper ip> 2181
Run Code Online (Sandbox Code Playgroud)

有关以下文档链接的更多详细信息, 请访问https://zookeeper.apache.org/doc/r3.1.2/zookeeperAdmin.html#sc_zkCommands

  • 如果您在容器中运行 Zk,请不要忘记允许 `ZOO_4LW_COMMANDS_WHITELIST="*"` 或更小的值,例如 `"stat"`。否则你会得到一个“统计未执行,因为它不在白名单中。” [参考](https://registry.hub.docker.com/_/zookeeper) (3认同)
  • `echo ruok | nc &lt;zookeeper ip&gt; 2181`只会返回“ imok”(如果确定),因此这可能是最容易解析的。 (2认同)

Hao*_* Ge 62

检查Zookeeper是否可访问.一种方法是简单地telnet到正确的端口并执行stats命令.

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.
Run Code Online (Sandbox Code Playgroud)

  • telnet 通常不可用/服务器上未安装 (5认同)
  • “统计”在我的 Windows 上不起作用。请尝试使用“srvr”。 (3认同)
  • [此处](https://zookeeper.apache.org/doc/r3.4.8/zookeeperAdmin.html#sc_zkCommands)列出了可用的“四个字母单词”的列表。根据这个“stat”是正确的词。但是 - 我认为 - 它必须被列入白名单。就我而言,默认情况下只有“srvr”被列入白名单(Windows)。 (2认同)

Gau*_*hra 41

转到Zookeeper的bin目录并输入

./zkServer.sh status
Run Code Online (Sandbox Code Playgroud)

欲了解更多信息,请访问以下链接:

http://www.ibm.com/developerworks/library/bd-zookeeper/

希望这可以帮到你.


Kai*_*dul 16

echo stat | nc localhost 2181 | grep Mode
echo srvr | nc localhost 2181 | grep Mode #(From 3.3.0 onwards)
Run Code Online (Sandbox Code Playgroud)

以上将适用于Zookeeper运行的任何模式(独立或嵌入式).

其他方式

如果zookeeper以独立模式运行,那么它就是一个JVM进程.所以 -

jps | grep Quorum
Run Code Online (Sandbox Code Playgroud)

将显示jvm进程列表; 对于具有进程ID的zookeeper,这样的东西

HQuorumPeer
Run Code Online (Sandbox Code Playgroud)


lai*_*e9m 14

我做了一些测试:

当它运行时:

$ /usr/lib/zookeeper/bin/zkServer.sh status
JMX enabled by default
Using config: /usr/lib/zookeeper/bin/../conf/zoo.cfg
Mode: follower
Run Code Online (Sandbox Code Playgroud)

当它停止时:

$ zkServer status                                                                                                                                
JMX enabled by default
Using config: /usr/local/etc/zookeeper/zoo.cfg
Error contacting service. It is probably not running.
Run Code Online (Sandbox Code Playgroud)

我不是在同一台机器上运行,但你明白了.


小智 7

输入以下命令以验证zookeeper是否正在运行:

echo "ruok" | nc localhost 2181 ; echo 
Run Code Online (Sandbox Code Playgroud)

预期回应: imok


ser*_*jja 5

Zookeeper只是一个Java进程,当您启动Zookeeper实例时,它将运行一个org.apache.zookeeper.server.quorum.QuorumPeerMain类。因此,您可以像这样检查正在运行的Zookeeper:

jps -l | grep zookeeper
Run Code Online (Sandbox Code Playgroud)

甚至像这样:

jps | grep Quorum
Run Code Online (Sandbox Code Playgroud)

更新:

关于此:will hostname be the hostname of my box??-答案是肯定的。