无情 @ Tue Nov 03 17:44:06 CST 2015 阅读(1947)
ZooKeeper



ZooKeeper 命令行工具类似于Linux的shell环境,使用它可以对ZooKeeper进行访问,数据创建,数据修改等操作. 

使用 zkCli.sh -server 127.0.0.1:2181 连接到 ZooKeeper 服务,连接成功后,系统会输出 ZooKeeper 的相关环境以及配置信息。

命令行工具的一些简单操作如下:


1、ZooKeeper操作命令

1. 显示根目录下、文件: ls / 使用 ls 命令来查看当前 ZooKeeper 中所包含的内容


2. 显示根目录下、文件: ls2 / 查看当前节点数据并能看到更新次数等数据


3. 创建文件,并设置初始内容: create /zk "zhuhuipei" 创建一个新的 znode节点“ zk ”以及与它关联的字符串


4. 获取文件内容: get /zk 确认 znode 是否包含我们所创建的字符串


5. 修改文件内容: set /zk "zhuhuipei" 对 zk 所关联的字符串进行设置


6. 删除文件: delete /zk 将刚才创建的 znode 删除


7. 退出客户端: quit


8. 帮助命令: help


使用delete命令可以删除指定znode. 当该znode拥有子znode时, 必须先删除其所有子znode, 否则操作将失败. rmr命令可用于代替delete命令, rmr是一个递归删除命令, 如果发生指定节点拥有子节点时, rmr命令会首先删除子节点.



znode节点的状态信息说明

使用get命令获取指定节点的数据时, 同时也将返回该节点的状态信息, 称为Stat. 其包含如下字段:


czxid. 节点创建时的zxid.

mzxid. 节点最新一次更新发生时的zxid.

ctime. 节点创建时的时间戳.

mtime. 节点最新一次更新发生时的时间戳.

dataVersion. 节点数据的更新次数.

cversion. 其子节点的更新次数.

aclVersion. 节点ACL(授权信息)的更新次数.

ephemeralOwner. 如果该节点为ephemeral节点, ephemeralOwner值表示与该节点绑定的session id. 如果该节点不是ephemeral节点, ephemeralOwner值为0. 至于什么是ephemeral节点, 请看后面的讲述.

dataLength. 节点数据的字节数.

numChildren. 子节点个数.


2、ZooKeeper 四字命令

ZooKeeper 支持某些特定的四字命令字母与其的交互。

它们大多是查询命令,用来获取 ZooKeeper 服务的当前状态及相关信息。用户在客户端可以通过 telnet 或 nc 向 ZooKeeper 提交相应的命令



1. 可以通过命令:echo stat|nc 127.0.0.1 2181 来查看哪个节点被选择作为follower或者leader


2. 使用echo ruok|nc 127.0.0.1 2181 测试是否启动了该Server,若回复imok表示已经启动。


3. echo dump| nc 127.0.0.1 2181 ,列出未经处理的会话和临时节点。


4. echo kill | nc 127.0.0.1 2181 ,关掉server


5. echo conf | nc 127.0.0.1 2181 ,输出相关服务配置的详细信息。


6. echo cons | nc 127.0.0.1 2181 ,列出所有连接到服务器的客户端的完全的连接 / 会话的详细信息。


7. echo envi |nc 127.0.0.1 2181 ,输出关于服务环境的详细信息(区别于 conf 命令)。


8. echo reqs | nc 127.0.0.1 2181 ,列出未经处理的请求。


9. echo wchs | nc 127.0.0.1 2181 ,列出服务器 watch 的详细信息。


10. echo wchc | nc 127.0.0.1 2181 ,通过 session 列出服务器 watch 的详细信息,它的输出是一个与 watch 相关的会话的列表。


11. echo wchp | nc 127.0.0.1 2181 ,通过路径列出服务器 watch 的详细信息。它输出一个与 session 相关的路径。



*如果出现 -bash: nc: command not found  说明没有nc命令 可以用 yum install nc.x86_64   安装