ZooKeeper的shell操作命令

ZooKeeper的shell操作命令

使用zkServer.sh啓動ZooKeeper服務器後,接下來就可以使用zkCli.sh腳本啓動ZooKeeper客戶端來連接ZooKeeper服務器;Windows對應的是zkServer.cmdzkCli.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]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章