Zookeeper的节点操作
Zookeeper的Shell 客戶端操作
| create [-s] [-e] path data acl | 創建Znode | -s 指定是順序節點<br>-e 指定是臨時節點 |
| ls path [watch] | 列出Path下所有子Znode | ? |
| get path [watch] | 獲取Path對應的Znode的數據和屬性 | ? |
| ls2 path [watch] | 查看Path下所有子Znode以及子Znode的屬性 | ? |
| set path data [version] | 更新節點 | version 數據版本 |
| delete path [version] | 刪除節點, 如果要刪除的節點有子Znode則無法刪除 | version 數據版本 |
| rmr path | 刪除節點, 如果有子Znode則遞歸刪除 | ? |
| setquota -n|-b val path | 修改Znode配額 | -n 設置子節點最大個數<br>-b 設置節點數據最大長度 |
| history | 列出歷史記錄 | ? |
1:創建普通節點
create /app1 hello
2: 創建順序節點
create -s /app3 world
3:創建臨時節點
create -e /tempnode world
4:創建順序的臨時節點
create -s -e /tempnode2 aaa
5:獲取節點數據
get /app1
6:修改節點數據
set /app1 xxx
7:刪除節點
delete /app1 刪除的節點不能有子節點
? rmr /app1 遞歸刪除
Znode 的特點
-
文件系統的核心是 Znode
-
如果想要選取一個 Znode, 需要使用路徑的形式, 例如 /test1/test11
-
Znode 本身并不是文件, 也不是文件夾, Znode 因為具有一個類似于 Name 的路徑, 所以可以從邏輯上實現一個樹狀文件系統
-
ZK 保證 Znode 訪問的原子性, 不會出現部分 ZK 節點更新成功, 部分 ZK 節點更新失敗的問題
-
Znode 中數據是有大小限制的, 最大只能為1M
-
Znode是由三個部分構成
-
stat: 狀態, Znode的權限信息, 版本等
-
data: 數據, 每個Znode都是可以攜帶數據的, 無論是否有子節點
-
children: 子節點列表
-
Znode 的類型
-
每個Znode有兩大特性, 可以構成四種不同類型的Znode
-
持久性
-
持久 客戶端斷開時, 不會刪除持有的Znode
-
臨時 客戶端斷開時, 刪除所有持有的Znode, 臨時Znode不允許有子Znode
-
-
順序性
-
有序 創建的Znode有先后順序, 順序就是在后面追加一個序列號, 序列號是由父節點管理的自增
-
無序 創建的Znode沒有先后順序
-
-
-
Znode的屬性
-
dataVersion 數據版本, 每次當Znode中的數據發生變化的時候, dataVersion都會自增一下
-
cversion 節點版本, 每次當Znode的節點發生變化的時候, cversion都會自增
-
aclVersion ACL(Access Control List)的版本號, 當Znode的權限信息發生變化的時候aclVersion會自增
-
zxid 事務ID
-
ctime 創建時間
-
mtime 最近一次更新的時間
-
ephemeralOwner 如果Znode為臨時節點, ephemeralOwner表示與該節點關聯的SessionId
-
總結
以上是生活随笔為你收集整理的Zookeeper的节点操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Zookeeper的概述
- 下一篇: hadoop的架构