1、启动客户端
[root@node01 ~]# zkCli.sh
2、显示所有操作命令
[zk: localhost:2181(CONNECTED) 0] help
ZooKeeper -server host:port cmd args
stat path [watch]
set path data [version]
ls path [watch]
delquota [-n|-b] path
ls2 path [watch]
setAcl path acl
setquota -n|-b val path
history
redo cmdno
printwatches on|off
delete path [version]
sync path
listquota path
rmr path
get path [watch]
create [-s] [-e] path data acl
addauth scheme auth
quit
getAcl path
close
connect host:port
命令基本语法 | 功能描述 |
---|---|
help | 显示所有操作命令 |
ls path [watch] | 使用 ls 命令来查看当前znode中所包含的内容 |
ls2 path [watch] | 查看当前节点数据并能看到更新次数等数据 |
create | 普通创建 -s 含有序列 -e 临时(重启或者超时消失) |
get path [watch] | 获得节点的值 |
set | 设置节点的具体值 |
stat | 查看节点状态 |
delete | 删除节点 |
rmr | 递归删除节点 |
3、查看当前节点详细数据
[zk: localhost:2181(CONNECTED) 7] ls /
[zookeeper]
[zk: localhost:2181(CONNECTED) 4] ls2 /
[zookeeper]
cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x0
cversion = -1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 1
4、创建普通节点
[zk: localhost:2181(CONNECTED) 6] create /test hello
Created /test
5、获取节点的值
[zk: localhost:2181(CONNECTED) 9] get /test
hello
cZxid = 0x100000008
ctime = Thu May 11 15:39:34 CST 2023
mZxid = 0x100000008
mtime = Thu May 11 15:39:34 CST 2023
pZxid = 0x100000008
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 5
numChildren = 0
6、创建短暂节点
[zk: localhost:2181(CONNECTED) 11] create -e /test/t1 "tmp"
Created /test/t1
(1)在当前客户端是能查看到的
[zk: localhost:2181(CONNECTED) 12] ls /test
[t1]
(2)退出当前客户端然后再重启客户端
[zk: localhost:2181(CONNECTED) 13] quit
Quitting...
[root@node01 ~]# zkCli.sh
(3)再次查看根目录下短暂节点已经删除
[zk: localhost:2181(CONNECTED) 0] ls /test
[]
7、创建带序号的节点
(1)先创建一个普通的根节点
[zk: localhost:2181(CONNECTED) 5] create /test/t2 "coco"
Created /test/t2
(2)创建带序号的节点
[zk: localhost:2181(CONNECTED) 8] create -s /test/t3 "jojo"
Created /test/t30000000004
[zk: localhost:2181(CONNECTED) 9] create -s /test/t4 "haha"
Created /test/t40000000005
如果原来没有序号节点,序号从0开始依次递增。如果原节点下已有2个节点,则再排序时从2开始,以此类推
8、修改节点数据值
[zk: localhost:2181(CONNECTED) 14] set /test/t2 "aaa"
cZxid = 0x100000010
ctime = Thu May 11 15:56:15 CST 2023
mZxid = 0x100000018
mtime = Thu May 11 15:59:33 CST 2023
pZxid = 0x100000010
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0
9、节点的值变化监听
(1)在node02主机上注册监听/test节点数据变化
[zk: localhost:2181(CONNECTED) 2] get /test watch
(2)在node01主机上修改/test节点的数据
[zk: localhost:2181(CONNECTED) 21] set /test "aa"
cZxid = 0x100000008
ctime = Thu May 11 15:39:34 CST 2023
mZxid = 0x10000001c
mtime = Thu May 11 16:04:54 CST 2023
pZxid = 0x10000001a
cversion = 11
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 2
numChildren = 1
(3)观察node02主机收到数据变化的监听
WATCHER::
WatchedEvent state:SyncConnected type:NodeDataChanged path:/test
10、节点的子节点变化监听(路径变化)
(1)在node02主机上注册监听/test节点的子节点变化
[zk: localhost:2181(CONNECTED) 3] ls /test watch
[t2]
(2)在node01主机/test节点上创建子节点
[zk: localhost:2181(CONNECTED) 22] create /test/t1 "aaaa"
Created /test/t1
(3)观察node02主机收到子节点变化的监听
WATCHER::
WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/test
11、删除节点
[zk: localhost:2181(CONNECTED) 17] delete /test/t30000000004
12、递归删除节点
[zk: localhost:2181(CONNECTED) 19] rmr /test/t40000000005
13、查看节点状态
[zk: localhost:2181(CONNECTED) 10] stat /test
cZxid = 0x100000008
ctime = Thu May 11 15:39:34 CST 2023
mZxid = 0x100000008
mtime = Thu May 11 15:39:34 CST 2023
pZxid = 0x100000008
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 5
numChildren = 0