ZooKeeper:zookeeper的常用命令(節點的新增、更新、刪除)


1、新增節點

(1)先啟動ZooKeeper,再登錄到ZooKeeper

[root@zhai bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /home/zookeeper/zookeeper-3.4.10/bin/../conf/zoo.cfg
Starting zookeeper ... already running as process 2183.
[root@zhai bin]# ./zkCli.sh
Connecting to localhost:2181

(2)創建持久化節點並寫入數據

[zk: localhost:2181(CONNECTED) 1] create /hadoop "nihao2020"
Created /hadoop
[zk: localhost:2181(CONNECTED) 2] 

根據結點路徑讀取數據

[zk: localhost:2181(CONNECTED) 2] get /hadoop
nihao2020
cZxid = 0x4
ctime = Thu Oct 22 04:02:38 CST 2020
mZxid = 0x4
mtime = Thu Oct 22 04:02:38 CST 2020
pZxid = 0x4
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 9
numChildren = 0
[zk: localhost:2181(CONNECTED) 3] 

輸入quit命令退出后重新登錄依舊能夠讀取到數據,說明數據是持久化存儲的

(3)創建臨時結點並寫入數據

[zk: localhost:2181(CONNECTED) 1] create -e /test "a"
Created /test
[zk: localhost:2181(CONNECTED) 2] quit

退出后,使用get命令獲取數據的時候數據已經不存在了:

[zk: localhost:2181(CONNECTED) 0] get /test
Node does not exist: /test

(4)創建有序節點

[zk: localhost:2181(CONNECTED) 1] create -s /test "a"
Created /test0000000002

 

2、更新節點

(1)更新節點

[zk: localhost:2181(CONNECTED) 2] get /hadoop
nihao2020
cZxid = 0x4
ctime = Thu Oct 22 04:02:38 CST 2020
mZxid = 0x4
mtime = Thu Oct 22 04:02:38 CST 2020
pZxid = 0x4
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 9
numChildren = 0
[zk: localhost:2181(CONNECTED) 3] set /hadoop "zhaihuabing"
cZxid = 0x4
ctime = Thu Oct 22 04:02:38 CST 2020
mZxid = 0xb
mtime = Thu Oct 22 04:19:03 CST 2020
pZxid = 0x4
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 11
numChildren = 0
[zk: localhost:2181(CONNECTED) 4] get /hadoop
zhaihuabing
cZxid = 0x4
ctime = Thu Oct 22 04:02:38 CST 2020
mZxid = 0xb
mtime = Thu Oct 22 04:19:03 CST 2020
pZxid = 0x4
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 11
numChildren = 0
[zk: localhost:2181(CONNECTED) 5] 

每修改一次版本號加一

 

(2)帶有版本號的更新

[zk: localhost:2181(CONNECTED) 0] get /hadoop
zhaihuabing
cZxid = 0x4
ctime = Thu Oct 22 04:02:38 CST 2020
mZxid = 0xb
mtime = Thu Oct 22 04:19:03 CST 2020
pZxid = 0x4
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 11
numChildren = 0
[zk: localhost:2181(CONNECTED) 1] set /hadoop "2020001" 0
version No is not valid : /hadoop
[zk: localhost:2181(CONNECTED) 2] set /hadoop "2020002" 1
cZxid = 0x4
ctime = Thu Oct 22 04:02:38 CST 2020
mZxid = 0xf
mtime = Thu Oct 22 04:26:19 CST 2020
pZxid = 0x4
cversion = 0
dataVersion = 2
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 7
numChildren = 0
[zk: localhost:2181(CONNECTED) 3] get /hadoop
2020002
cZxid = 0x4
ctime = Thu Oct 22 04:02:38 CST 2020
mZxid = 0xf
mtime = Thu Oct 22 04:26:19 CST 2020
pZxid = 0x4
cversion = 0
dataVersion = 2
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 7
numChildren = 0

第一次更新的時候版本號版本號不對應,提示版本號錯誤,在版本號一致的時候更新成功

 

3、刪除節點

(1)刪除節點

[zk: localhost:2181(CONNECTED) 4] delete /hadoop
[zk: localhost:2181(CONNECTED) 5] get /hadoop
Node does not exist: /hadoop

(2)帶有版本號的刪除

[zk: localhost:2181(CONNECTED) 8] set /hadoop "2020003"
Node does not exist: /hadoop
[zk: localhost:2181(CONNECTED) 9] create /hadoop "2020003"
Created /hadoop
[zk: localhost:2181(CONNECTED) 10] get /hadoop
2020003
cZxid = 0x13
ctime = Thu Oct 22 04:32:19 CST 2020
mZxid = 0x13
mtime = Thu Oct 22 04:32:19 CST 2020
pZxid = 0x13
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 7
numChildren = 0
[zk: localhost:2181(CONNECTED) 11] delete /hadoop 1
version No is not valid : /hadoop
[zk: localhost:2181(CONNECTED) 12] delete /hadoop 0
[zk: localhost:2181(CONNECTED) 13] get /hadoop
Node does not exist: /hadoop

帶有版本號以后版本號只有在對應的情況下節點才能刪除成功

(3)delete命令不能刪除帶有子節點的節點

[zk: localhost:2181(CONNECTED) 14] create /test "test"
Created /test
[zk: localhost:2181(CONNECTED) 15] create /test/t1 "t1"
Created /test/t1
[zk: localhost:2181(CONNECTED) 16] delete /test
Node not empty: /test

(4)使用rmr命令刪除節點以及節點的子節點

[zk: localhost:2181(CONNECTED) 17] rmr /test
[zk: localhost:2181(CONNECTED) 18] get /test
Node does not exist: /test
[zk: localhost:2181(CONNECTED) 19] get /test/t1
Node does not exist: /test/t1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM