##前言

在ZooKeeper安装和配置一文中, 我们使用了 stat 命令来验证 ZooKeeper 服务器是否成功启动。ZooKeeper 还支持很多类似的由四个字母组成的命令, 我们称之为 "四字命令"。可以通过 telnet 或 nc 这两种方式向 ZooKeeper 的客户端端口提交这些四字命令。


##conf conf 命令是在 3.3.0 版本中引入的, 它会打印输出服务器配置的详细信息。以便运维人员能够很快速的查看 ZooKeeper 服务器当前运行时的一些配置参数。

telnet示例

zookeeper4字命令 zookeeper 四字_zookeeper4字命令

可以看到有些配置项我们没有在 zoo.cfg 配置文件中配置, 服务器使用了默认配置。

nc示例

zookeeper4字命令 zookeeper 四字_zookeeper4字命令_02

运行模式

conf 命令会根据当前的运行模式来决定打印输出的服务器配置信息, 上面的两个示例是集群模式下的示例, 如果是单机模式(standalone), 则不会输出 initLimit、syncLimit、electionAlg 以及 electionPort 等集群配置信息。

zookeeper4字命令 zookeeper 四字_python_03


##cons cons 命令是 3.3.0 版本中引入的, 它用于输出所有连接到该服务器的客户端的完整连接和会话信息, 包括接收和发送包的数量、会话ID、操作延迟以及最后执行的操作等信息。

zookeeper4字命令 zookeeper 四字_服务器_04

可以看到本机上有一个客户端连接。


##crst crst 命令是在 3.3.0 版本中引入的, 用于重置所有客户端连接的连接和会话统计信息。

zookeeper4字命令 zookeeper 四字_大数据_05


##dump dump 命令用于输出未完成的会话和临时节点。 ###leader示例

zookeeper4字命令 zookeeper 四字_大数据_06

###follower示例

zookeeper4字命令 zookeeper 四字_python_07


##envi envi 命令用于打印输出服务器运行时的环境变量信息。

zookeeper4字命令 zookeeper 四字_运维_08


##ruok ruok 命令用于测试当前服务器是否正在运行。如果服务器正在运行则返回 "imok", 否则没有任何响应。

zookeeper4字命令 zookeeper 四字_运维_09

需要注意的是, "imok" 响应不一定能够表明服务器已经加入到集群中, 仅仅说明服务器进程处于活动状态并且已经绑定到指定的客户端端口。 可以使用 "stat" 获取集群状态以及客户端连接信息。


##srst srst 命令用于重置服务器统计信息。

zookeeper4字命令 zookeeper 四字_python_10


##srvr srvr 命令是在 3.3.0 版本中引入的, 它用于输出服务器的完整信息。

zookeeper4字命令 zookeeper 四字_服务器_11


##stat stat 命令用于输出服务器以及连接到该服务器的客户端的概要信息。

zookeeper4字命令 zookeeper 四字_运维_12

srvr 命令和 stat 命令的唯一区别是 srvr 不会输出客户端的概要信息。


##wchs wchs 命令是在 3.3.0 版本中引入的, 用于输出当前服务器上 Watcher 的概要信息。

zookeeper4字命令 zookeeper 四字_大数据_13


##wchc wchc 命令是在 3.3.0 版本中引入的, 用于按会话输出当前服务器上 watches 的详细信息。它会输出会话(连接)以及相关的 watches (路径) 列表。

zookeeper4字命令 zookeeper 四字_服务器_14

因为暂时没有 watches, 所以没有任何输出。

注意, 取决于 watches 的数量, 这个操作可能会非常耗时 (影响服务器性能), 所以需要谨慎使用。


##wchp wchp 命令是在 3.3.0 版本中引入的, 用于按路径输出当前服务器上 watches 的详细信息。它会输出路径 (znodes) 以及相关会话列表。

zookeeper4字命令 zookeeper 四字_大数据_15

同样的, 因为暂时没有 watches, 所以没有任何输出。

注意, 取决于 watches 的数量, 这个操作可能会非常耗时 (影响服务器性能), 所以需要谨慎使用。


##mntr mntr 命令是在 3.4.0 版本中引入的, 用于输出可用于监控集群健康的变量列表。 ###leader示例

zookeeper4字命令 zookeeper 四字_大数据_16

###follower示例

zookeeper4字命令 zookeeper 四字_python_17

###示例说明 从上面两个示例可以看到, zk_followers, zk_synced_followers 和 zk_pending_syncs 只有在 leader 服务器上运行 mntr 命令时才会输出。还需要注意的是, zk_open_file_descriptor_count 和 zk_max_file_descriptor_count 这两个变量只有在 Unix 平台上才可用。


参考资料

http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_zkCommands