启动
Windows环境
双击zkServer.cmd脚本即可启动ZooKeeper
Linux环境
使用zkServer.sh脚本,如下:
3 常用命令
3.1. 启动ZK服务: bin/zkServer.sh start
3.2. 查看ZK服务状态: bin/zkServer.sh status
3.3 停止ZK服务: bin/zkServer.sh stop
3.4. 重启ZK服务: bin/zkServer.sh restart
3.5 连接服务器 zkCli.sh -server 127.0.0.1:2181
3.6 查看根目录 ls /
3.7 创建 testnode节点,关联字符串"zz" create /zk/testnode "zz"
3.8 查看节点内容 get /zk/testnode
3.9 设置节点内容 set /zk/testnode abc
4.0 删除节点 delete /zk/testnode
ZooKeeper客户端命令
连接ZooKeeper
启动ZooKeeper服务之后,我们可以使用如下命令连接到 ZooKeeper 服务:
zookeeper-3.4.8\bin>zkCli.cmd -server 127.0.0.1:2181
Linux环境下:
> zkCli.sh -server 127.0.0.1:2181
常用命令(Windows环境)
我们可以使用 help命令来查看帮助:
命令行工具的一些常用操作命令如下:
ls
使用 ls 命令来查看某个目录包含的所有文件,例如:
[zk: 127.0.0.1:2181(CONNECTED) 1] ls /
ls2
使用 ls2 命令来查看某个目录包含的所有文件,与ls不同的是它查看到time、version等信息
[zk: 127.0.0.1:2181(CONNECTED) 1] ls2 /
create
创建znode,并设置初始内容,例如
[zk: 127.0.0.1:2181(CONNECTED) 1] create /test "hello"
创建一个新的 znode节点“ test ”以及与它关联的字符串
get
获取znode的数据,如下:
[zk: 127.0.0.1:2181(CONNECTED) 1] get /test
set
修改znode内容,例如:
[zk: 127.0.0.1:2181(CONNECTED) 1] set /test "ricky"
delete
删除znode
[zk: 127.0.0.1:2181(CONNECTED) 1] delete /test
quit
退出客户端
help
帮助命令
命令行工具常用操作:
显示根目录下文件
ls / //查看当前节点数据
ls2 / //查看当前节点数据并能看到更新次数等数据
创建文件, 并设置初始内容:
create /config "test" //创建一个新的节点并设置关联值
create /config “” //创建一个新的空节点
获取文件内容
get /brokers //获取节点内容
修改文件内容
set /zk "zkbak" //对 zk 所关联的字符串进行设置
删除文件
delete /brokers //删除节点
rmr /brokers //删除节点及子节点
四字命令
ZooKeeper 支持某些特定的四字命令字母与其的交互,用来获取服务的当前状态及相关信息。在客户端可以通过 telnet 或 nc 向 ZooKeeper 提交相应的命令。命令行如下:
echo conf | nc 132.37.3.26 26181
ZooKeeper 常用四字命令:
conf
输出相关服务配置的详细信息
cons
列出所有连接到服务器的客户端的完全的连接 / 会话的详细信息。包括“接受 / 发送”的包数量、会话 id 、操作延迟、最后的操作执行等等信息
dump
列出未经处理的会话和临时节点。
envi
输出关于服务环境的详细信息(区别于 conf 命令)。
reqs
列出未经处理的请求
ruok
测试服务是否处于正确状态。如果确实如此,那么服务返回“ imok ”,否则不做任何相应
stat
输出关于性能和连接的客户端的列表。
wchs
列出服务器 watch 的详细信息
wchc
通过 session 列出服务器 watch 的详细信息,它的输出是一个与 watch 相关的会话的列表
wchp
通过路径列出服务器 watch 的详细信息。它输出一个与 session 相关的路径
znode节点的状态信息:
使用get命令获取指定节点的数据时, 同时也将返回该节点的状态信息, 称为Stat. 其包含如下字段:
czxid. 节点创建时的zxid.
mzxid. 节点最新一次更新发生时的zxid.
ctime. 节点创建时的时间戳.
mtime. 节点最新一次更新发生时的时间戳.
dataVersion. 节点数据的更新次数.
cversion. 其子节点的更新次数.
aclVersion. 节点ACL(授权信息)的更新次数.
ephemeralOwner. 如果该节点为ephemeral节点, ephemeralOwner值表示与该节点绑定的session id. 如果该节点不是ephemeral节点, ephemeralOwner值为0. 至于什么是ephemeral节点, 请看后面的讲述.
dataLength. 节点数据的字节数.
numChildren. 子节点个数.