ZK Client Shell
上次启动了zk集群server,下面记录客户端的操作。
首先启动客户端,命令:
bin/zkCli.sh
#退出命令quit
一些基本和常用命令:
语法 | 描述 |
---|---|
help | 可操作命令列表 |
ls path [watch] | 获取节点 |
ls2 path [watch] | 获取节点详细信息 |
create [-s|-e] | 创建znode |
get path [watch] | 取得节点包含内容 |
set | 设置节点内容 |
delete | 删除节点 |
rmr | 循环删除 |
下面记录具体操作,用一排#来分隔命令和结果,不说明默认在ubuntu001机器上执行命令
[zk: localhost:2181(CONNECTED) 3] ls /
###########当前znode包含内容
[zookeeper]
[zk: localhost:2181(CONNECTED) 4] ls2 /
###########当前znode包含的详细内容
[zookeeper]
cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x200000004
cversion = 1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 1
[zk: localhost:2181(CONNECTED) 5] create /leafznode1
[zk: localhost:2181(CONNECTED) 6] ls /
##########因为没包含数据,没包含数据不能创建,3.6.x以上没这问题,不过不建议高版本
[zookeeper]
[zk: localhost:2181(CONNECTED) 7] create /leafznode1 "leaf1"
##########创建节点
Created /leafznode1
[zk: localhost:2181(CONNECTED) 8] ls /
[leafznode1, zookeeper]
[zk: localhost:2181(CONNECTED) 11] get /leafznode1
##########取值
leaf1
cZxid = 0x200000005
ctime = Tue May 12 00:34:51 CST 2020
mZxid = 0x200000005
mtime = Tue May 12 00:34:51 CST 2020
pZxid = 0x200000005
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 5
numChildren = 0
[zk: localhost:2181(CONNECTED) 7] create -e /leafznode2 "leaf2"
##########创建短暂节点,quit后重新连接客户端此节点消失
Created /leafznode2
[zk: localhost:2181(CONNECTED) 13] ls /
[leafznode1, zookeeper, leafznode2]
[zk: localhost:2181(CONNECTED) 1] create -s /leafznode1/xiyou "xiyouyou"
###########创建有序节点,如果原来已有2节点,那么序号从2开始递增
Created /leafznode1/xiyou0000000000
[zk: localhost:2181(CONNECTED) 2] create -s /leafznode1/xiyou "xiyouyou2"
Created /leafznode1/xiyou0000000001
[zk: localhost:2181(CONNECTED) 3] create -s /leafznode1/xiyou "xiyouyou3"
Created /leafznode1/xiyou0000000002
[zk: localhost:2181(CONNECTED) 4] set /leafznode1 '111'
###########修改节点数据
cZxid = 0x200000005
ctime = Tue May 12 00:34:51 CST 2020
mZxid = 0x20000000c
mtime = Tue May 12 00:52:59 CST 2020
pZxid = 0x20000000b
cversion = 3
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 3
[zk: localhost:2181(CONNECTED) 5] get /leafznode1
111
cZxid = 0x200000005
ctime = Tue May 12 00:34:51 CST 2020
mZxid = 0x20000000c
mtime = Tue May 12 00:52:59 CST 2020
pZxid = 0x20000000b
cversion = 3
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 3
#在ubuntu003机器启动内容监听,这个监听仅一次有效
[zk: localhost:2181(CONNECTED) 2] get /leafznode1 watch
111
cZxid = 0x200000005
ctime = Tue May 12 00:34:51 CST 2020
mZxid = 0x20000000c
mtime = Tue May 12 00:52:59 CST 2020
pZxid = 0x20000000b
cversion = 3
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 3
#在ubuntu002上修改节点内容
[zk: localhost:2181(CONNECTED) 0] set /leafznode1 "11111111"
cZxid = 0x200000005
ctime = Tue May 12 00:34:51 CST 2020
mZxid = 0x20000000f
mtime = Tue May 12 00:59:58 CST 2020
pZxid = 0x20000000b
cversion = 3
dataVersion = 2
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 8
numChildren = 3
#这时注意到ubuntu003产生新日志
[zk: localhost:2181(CONNECTED) 3]
WATCHER::
WatchedEvent state:SyncConnected type:NodeDataChanged path:/leafznode1
#在ubuntu003启动路径变化监听
[zk: localhost:2181(CONNECTED) 3] ls /leafznode1 watch
[xiyou0000000001, xiyou0000000000, xiyou0000000002]
#同理在其他节点改动子节点
[zk: localhost:2181(CONNECTED) 1] create /leafznode1/xiyou "xiyou"
Created /leafznode1/xiyou
#ubuntu003产生新日志
[zk: localhost:2181(CONNECTED) 4]
WATCHER::
WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/leafznode1
[zk: localhost:2181(CONNECTED) 4] delete /leafznode1/xiyou
[zk: localhost:2181(CONNECTED) 8] rmr /leafznode1
###########删除不做解释,delete命令对于有子节点的节点不生效