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

时间:2015-03-17 18:04:15

标签: hadoop config apache-zookeeper apache-kafka ps

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

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

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

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

真的很感激任何帮助吗?

9 个答案:

答案 0 :(得分:61)

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

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

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

答案 1 :(得分:56)

检查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.

答案 2 :(得分:38)

转到Zookeeper的bin目录并输入

./zkServer.sh status

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

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

希望这可以帮到你。

答案 3 :(得分:13)

echo stat | nc localhost 2181 | grep Mode
echo srvr | nc localhost 2181 | grep Mode #(From 3.3.0 onwards)

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

另一种方式

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

jps | grep Quorum

将显示jvm进程列表;对于具有进程ID

的zookeeper,这样的事情
HQuorumPeer

答案 4 :(得分:12)

我做了一些测试:

当它正在运行时:

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

当它停止时:

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

我没有在同一台机器上运行,但你明白了。

答案 5 :(得分:4)

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

jps -l | grep zookeeper

甚至是这样:

jps | grep Quorum

UPD:

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

答案 6 :(得分:2)

我用:

  jps

根据您的安装,正在运行的Zookeeper看起来像

  HQuorumPeer

或某事。以动物园管理员的名字命名。

答案 7 :(得分:0)

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

echo "ruok" | nc localhost 2181 ; echo 

预期的响应:imok

答案 8 :(得分:0)

在Windows 10中

  • 打开命令提示符,然后键入telnet localhost 2181,然后键入srvr OR
  • 从bin文件夹中,打开PowerShell窗口,然后键入zkServer.sh status