ZooKeeper的shell操作命令
使用zkServer.sh
啓動ZooKeeper服務器後,接下來就可以使用zkCli.sh
腳本啓動ZooKeeper客戶端來連接ZooKeeper服務器;Windows對應的是zkServer.cmd
和zkCli.cmd
。
(1)使用help
命令可查看ZooKeeper的shell操作可用的命令,如下:
[zk: localhost:2181(CONNECTED) 4] 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
(2)查看當前Znode下包含的內容:ls path [watch]
[zk: localhost:2181(CONNECTED) 5] ls /
[dubbo, zookeeper]
(3)查看當前節點詳細的數據:ls2 path [watch]
[zk: localhost:2181(CONNECTED) 6] ls2 /zookeeper
[quota]
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)創建普通節點(必須在創建節點時有數據):create path data acl
[zk: localhost:2181(CONNECTED) 7] create /name
[zk: localhost:2181(CONNECTED) 8] ls /
[dubbo, zookeeper]
[zk: localhost:2181(CONNECTED) 9] create /name "xingze"
Created /name
[zk: localhost:2181(CONNECTED) 10] ls /
[name, dubbo, zookeeper]
[zk: localhost:2181(CONNECTED) 11] ls /name
[]
[zk: localhost:2181(CONNECTED) 12] ls2 /name
[]
cZxid = 0x18
ctime = Wed Dec 18 19:28:31 CST 2019
mZxid = 0x18
mtime = Wed Dec 18 19:28:31 CST 2019
pZxid = 0x18
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 6
numChildren = 0
[zk: localhost:2181(CONNECTED) 13] get /name
xingze
cZxid = 0x18
ctime = Wed Dec 18 19:28:31 CST 2019
mZxid = 0x18
mtime = Wed Dec 18 19:28:31 CST 2019
pZxid = 0x18
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 6
numChildren = 0
(5)獲得節點的值:get path [watch]
[zk: localhost:2181(CONNECTED) 13] get /name
xingze
cZxid = 0x18
ctime = Wed Dec 18 19:28:31 CST 2019
mZxid = 0x18
mtime = Wed Dec 18 19:28:31 CST 2019
pZxid = 0x18
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 6
numChildren = 0
(6)創建短暫/臨時節點:create -e path data acl
[zk: localhost:2181(CONNECTED) 14] create -e /age 21
Created /age
[zk: localhost:2181(CONNECTED) 15] ls /
[name, dubbo, zookeeper, age]
[zk: localhost:2181(CONNECTED) 16] quit
quit
命令用來退出當前shell操作窗口,接下來重新打開shell客戶端連接,查看創建的臨時節點是否還存在:
[zk: localhost:2181(CONNECTED) 0] ls /
[name, dubbo, zookeeper]
可以發現,臨時節點在當前shell窗口連接斷開之後,就會自動刪除。
(7)創建帶序號的節點:create -s path data acl
[zk: localhost:2181(CONNECTED) 1] create -s /age 21
Created /age0000000003
[zk: localhost:2181(CONNECTED) 2] ls /
[name, age0000000003, dubbo, zookeeper]
重複創建帶序號的節點並不會覆蓋之前的節點,如下:
[zk: localhost:2181(CONNECTED) 3] create -s /age 21
Created /age0000000004
[zk: localhost:2181(CONNECTED) 4] create -s /age 21
Created /age0000000005
[zk: localhost:2181(CONNECTED) 5] ls /
[name, age0000000003, dubbo, age0000000004, zookeeper, age0000000005]
注:如果原來沒有序號節點,序號會從0開始依次遞增。如果原節點下已有2個節點,則再排序時從2開始,以此類推。
(8)修改節點數據值:set path data [version]
[zk: localhost:2181(CONNECTED) 6] set /age 22
Node does not exist: /age
[zk: localhost:2181(CONNECTED) 7] ls /
[name, age0000000003, dubbo, age0000000004, zookeeper, age0000000005]
[zk: localhost:2181(CONNECTED) 8] set /age0000000003 22
cZxid = 0x1c
ctime = Wed Dec 18 19:49:49 CST 2019
mZxid = 0x20
mtime = Wed Dec 18 19:56:54 CST 2019
pZxid = 0x1c
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 2
numChildren = 0
[zk: localhost:2181(CONNECTED) 9] get /age0000000003
22
cZxid = 0x1c
ctime = Wed Dec 18 19:49:49 CST 2019
mZxid = 0x20
mtime = Wed Dec 18 19:56:54 CST 2019
pZxid = 0x1c
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 2
numChildren = 0
(9)監聽節點的子節點變化:涉及到集羣,後續補。。。。。。
(10)刪除節點:
[zk: localhost:2181(CONNECTED) 0] ls /
[name, age0000000003, dubbo, age0000000004, zookeeper, age0000000005]
[zk: localhost:2181(CONNECTED) 1] delete /age*
Node does not exist: /age*
[zk: localhost:2181(CONNECTED) 2] delete /age0000000003
[zk: localhost:2181(CONNECTED) 3] ls /
[name, dubbo, age0000000004, zookeeper, age0000000005]