获取zookeeper集群状态

Sum*_*ari 10 zookeeper kafka

是否有 cli 或一些命令行,我可以用它来查找 zookeeper 集群状态。基本上我想知道如何加入集群或哪些节点充当领导者。

任何指针都会有所帮助。

在stackoverflow中看到这个问题:https : //stackoverflow.com/questions/16669104/how-to-get-current-zookeeper-clusters-member-server-list,但没有帮助

小智 12

您可以通过输入以下命令来确定哪个节点充当领导者:

echo stat | nc localhost 2181 | grep Mode
Run Code Online (Sandbox Code Playgroud)

如果节点充当领导者,您将收到响应:

Mode: leader
Run Code Online (Sandbox Code Playgroud)

如果是follower,你会看到:

Mode: follower
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用位于 /opt/zookeeper/bin 中的 zkServer.sh:

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

其输出将是:

ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Mode: follower
Run Code Online (Sandbox Code Playgroud)

您可以使用以下方法获取更多信息:

echo mntr | nc localhost 2181
Run Code Online (Sandbox Code Playgroud)

其输出为:

zk_version      3.4.8--1, built on 02/06/2016 03:18 GMT
zk_avg_latency  0
zk_max_latency  0
zk_min_latency  0
zk_packets_received     7
zk_packets_sent 6
zk_num_alive_connections        2
zk_outstanding_requests 0
zk_server_state follower
zk_znode_count  357
zk_watch_count  0
zk_ephemerals_count     5
zk_approximate_data_size        846524
zk_open_file_descriptor_count   36
zk_max_file_descriptor_count    4096
Run Code Online (Sandbox Code Playgroud)

如果节点是领导者,您还将看到:

zk_followers    5
zk_synced_followers     5
zk_pending_syncs        0
Run Code Online (Sandbox Code Playgroud)

Windows 平台上不会出现以下内容:

zk_open_file_descriptor_count   43
zk_max_file_descriptor_count    4096
Run Code Online (Sandbox Code Playgroud)

使用上述信息,您可以确定 Zookeeper 集合的健康状况。