本文将介绍zookeeper的客户端命令,并对命令进行归类,方便以后查阅。由于权限控制和配置相关涉及内容较多,这两块独立出来,可通过文章内的链接查看。本文命令使用和实验对象为zookeeper3.5。
1.1 网络相关命令
网络相关主要包括以下三个命令:
- connect host:port:连接指定host:port zk服务,连接过程中状态为CONNECTING,连接成功后状态转变为CONNECTED
- close :关闭当前连接,即关闭当前session。使用close命令后,连接状态转变为CLOSED
- quit :退出当前客户端
[root@VM_147_78_centos /data/zookeeper/bin]# ./zkCli.sh -server 127.0.0.1:2181
/usr/local/jdk1.8.0_231/bin/java
Connecting to 127.0.0.1:2181
Welcome to ZooKeeper!
JLine support is enabled
# 关闭连接
[zk: 127.0.0.1:2181(CONNECTED) 15] close
WATCHER::
WatchedEvent state:Closed type:None path:null
# 建立连接
[zk: 127.0.0.1:2181(CLOSED) 16] connect 127.0.0.1:2181
[zk: 127.0.0.1:2181(CONNECTING) 17]
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
# 退出客户端
[zk: 127.0.0.1:2181(CONNECTED) 17] quit
WATCHER::
WatchedEvent state:Closed type:None path:null
[root@VM_147_78_centos /data/zookeeper/bin]#
1.2 节点操作相关命令
节点操作包括9个命令:create,stat,get,set,ls,ls2,delete,deleteall,rmr
1.2.1 创建znode节点:create
节点创建命令:
create [-s] [-e] [-c] [-t ttl] path [data] [acl]
节点创建选项说明:
- path : znode节点路径
- data : 节点存储的数据,可选参数,默认数据为空
- acl :节点权限列表,可选参数,默认所有客户端都可以操作该节点
- -s : 待创建的节点为顺序节点,创建节点时,zk会自动在节点名称后添加序号,序号相对于该节点的父节点是唯一的。
- -e:指定当前创建的节点为临时节点,当创建该节点的session断开之后,该节点自动消失。
- -t:指定节点ttl,当前节点到达ttl指定的时间(单位为ms)之后将会被自动删除。注意:该功能只有在设置extendedTypesEnabled属性之后才能使用;zookeeper扫描ttl节点的频率默认为1分钟,所以ttl的误差范围为1分钟。
节点创建实例:
# 创建节点,并将节点内容初始化为data
[zk: 127.0.0.1:2181(CONNECTED) 0] create /test_create data
Created /test_create
[zk: 127.0.0.1:2181(CONNECTED) 1]
[zk: 127.0.0.1:2181(CONNECTED) 1] create /test_create/test1 123
Created /test_create/test1
[zk: 127.0.0.1:2181(CONNECTED) 2] get /test_create/test1
123
# 创建顺序节点,节点序号从0000000001开始
[zk: 127.0.0.1:2181(CONNECTED) 3] create -s /test_create/seq
Created /test_create/seq0000000001
[zk: 127.0.0.1:2181(CONNECTED) 4] ls /test_create
[seq0000000001, test1]
# 创建带有ttl的节点,
[zk: 127.0.0.1:2181(CONNECTED) 5] create /test_create/test_ttl -t 1
Created /test_create/test_ttl
[zk: 127.0.0.1:2181(CONNECTED) 6] ls /test_create
[seq0000000001, test1, test_ttl]
# 过期后ttl节点自动消失
[zk: 127.0.0.1:2181(CONNECTED) 7] ls /test_create
[seq0000000001, test1]
# 创建临时节点
[zk: 127.0.0.1:2181(CONNECTED) 8] create -e /test
test test%10d0000000039 test3 test4 test_create
[zk: 127.0.0.1:2181(CONNECTED) 8] create -e /test_create/test_e
Created /test_create/test_e
[zk: 127.0.0.1:2181(CONNECTED) 9] ls /test_create
[seq0000000001, test1, test_e]
# 关闭当前会话
[zk: 127.0.0.1:2181(CONNECTED) 10] close
WATCHER::
WatchedEvent state:Closed type:None path:null
# 重新连接
[zk: 127.0.0.1:2181(CLOSED) 11] connect 127.0.0.1:2181
[zk: 127.0.0.1:2181(CONNECTING) 12]
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
# 重新连接后临时节点消失
[zk: 127.0.0.1:2181(CONNECTED) 12] ls /test_create
[seq0000000001, test1]
1.2.2 查看节点状态:stat
查看节点状态命令:
stat [-w] path
查看节点状态参数说明:
- -w : 给指定节点设置监视器。该监视器在 修改节点数据(set)/删除当前节点(delete/deleteall/rmr)的时候触发,注意增删子节点以及修改子节点数据不会出发当前监视器。
查看节点状态实例:
[zk: 127.0.0.1:2181(CONNECTED) 25] stat -w /test_create
cZxid = 0xd0000003b
ctime = Sun Dec 22 17:56:35 CST 2019
mZxid = 0xd00000047
mtime = Sun Dec 22 18:10:03 CST 2019
pZxid = 0xd00000046
cversion = 8
dataVersion = 2
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 2