zookeeper 之簡單操作
阿新 • • 發佈:2018-12-04
ZooKeeper的資料模型及其API支援以下九個基本操作:
我們來使用ZooKeeper Java shell對上面中提到的ZooKeeper操作進行演示:
用ThisIsTheRootNode作為資料建立一個名為root的znode:
[zk: localhost(CONNECTED) 0] create /root "ThisIsTheRootNode"
Created /root
獲取剛建立的root的znode的內容:
[zk: localhost(CONNECTED) 1] get /root
"ThisIsTheRootNode"
用ThisIsChild-1作為資料為root建立一個名為child-1的子節點:
[zk: localhost(CONNECTED) 2] create /root/child-1 "ThisIsChild-1"
Created /root/child-1
用ThisIsChild-2作為資料為root建立一個名為child-2的子節點:
[zk: localhost(CONNECTED) 3] create /root/child-2 "ThisIsChild-2"
Created /root/child-2
列出root的子節點:
[zk: localhost(CONNECTED) 4] ls /root
[child-2, child-1]
獲取root的訪問控制列表:
[zk: localhost(CONNECTED) 5] getAcl /root
'world,'anyone
: cdrwa
由於root擁有2個子節點,所以不允許刪除root:
[zk: localhost(CONNECTED) 6] delete /root
Node not empty: /root
刪除子節點child-1:
[zk: localhost(CONNECTED) 7] delete /root/child-1
刪除子節點child-2:
[zk: localhost(CONNECTED) 8] delete /root/child-2
列出root的內容:
[zk: localhost(CONNECTED) 9] ls2 /root
[]
刪除root:
[zk: localhost(CONNECTED) 10] delete /root
ZooKeeper名稱空間中的每個znode都有一個與之關聯的stat結構,類似於Unix/Linux檔案系統中檔案的stat結構。 znode的stat結構中的欄位顯示如下,各自的含義如下:
- cZxid:這是導致建立znode更改的事務ID。
- mZxid:這是最後修改znode更改的事務ID。
- pZxid:這是用於新增或刪除子節點的znode更改的事務ID。
- ctime:表示從1970-01-01T00:00:00Z開始以毫秒為單位的znode建立時間。
- mtime:表示從1970-01-01T00:00:00Z開始以毫秒為單位的znode最近修改時間。
- dataVersion:表示對該znode的資料所做的更改次數。
- cversion:這表示對此znode的子節點進行的更改次數。
- aclVersion:表示對此znode的ACL進行更改的次數。
- ephemeralOwner:如果znode是ephemeral型別節點,則這是znode所有者的 session ID。 如果znode不是ephemeral節點,則該欄位設定為零。
- dataLength:這是znode資料欄位的長度。
- numChildren:這表示znode的子節點的數量。
在ZooKeeper Java shell中,可以使用stat或ls命令檢視znode的stat結構。 具體說明如下:
- 使用stat命令檢視znode的stat結構:
[zk: localhost(CONNECTED) 23] stat /znode
cZxid = 0x200000024
ctime = Sat Jun 09 14:55:42 CST 2018
mZxid = 0x200000024
mtime = Sat Jun 09 14:55:42 CST 2018
pZxid = 0x200000026
cversion = 2
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 14
numChildren = 2
- 使用ls2命令檢視znode的stat結構:
[zk: localhost(CONNECTED) 27] ls -s /znode
[child-1, child-2]cZxid = 0x200000024
ctime = Sat Jun 09 14:55:42 CST 2018
mZxid = 0x200000024
mtime = Sat Jun 09 14:55:42 CST 2018
pZxid = 0x200000026
cversion = 2
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 14
numChildren = 2