2021年大数据ZooKeeper(三):Zookeeper数据模型和节点类型
目錄
Apache ZooKeeper
Zookeeper數據模型
Zookeeper節點類型
Apache ZooKeeper
Zookeeper數據模型
圖中的每個節點稱為一個Znode。 每個Znode由3部分組成:
ZooKeeper的數據模型,在結構上和標準文件系統的非常相似,擁有一個層次的命名空間,都是采用樹形層次結構,ZooKeeper樹中的每個節點被稱為—Znode。和文件系統的目錄樹一樣,ZooKeeper樹中的每個節點可以擁有子節點。但也有不同之處:
1. Znode兼具文件和目錄兩種特點,既像文件一樣維護著數據、元信息、ACL、時間戳等數據結構,又像目錄一樣可以作為路徑標識的一部分,并可以具有子Znode。用戶對Znode具有增、刪、改、查等操作(權限允許的情況下)。
2. Znode具有原子性操作,讀操作將獲取與節點相關的所有數據,寫操作也將替換掉節點的所有數據。另外,每一個節點都擁有自己的ACL(訪問控制列表),這個列表規定了用戶的權限,即限定了特定用戶對目標節點可以執行的操作。
3. Znode存儲數據大小有限制,ZooKeeper雖然可以關聯一些數據,但并沒有被設計為常規的數據庫或者大數據存儲,相反的是,它用來管理調度數據,比如分布式應用中的配置文件信息、狀態信息、匯集位置等等。這些數據的共同特性就是它們都是很小的數據,通常以KB為大小單位。ZooKeeper的服務器和客戶端都被設計為嚴格檢查并限制每個Znode的數據大小至多1M,當時常規使用中應該遠小于此值。
4. Znode通過路徑引用,如同Unix中的文件路徑。路徑必須是絕對的,因此他們必須由斜杠字符來開頭。除此以外,他們必須是唯一的,也就是說每一個路徑只有一個表示,因此這些路徑不能改變。在ZooKeeper中,路徑由Unicode字符串組成,并且有一些限制。字符串"/zookeeper"用以保存管理信息,比如關鍵配額信息。
① stat:此為狀態信息, 描述該Znode的版本, 權限等信息
②?data:與該Znode關聯的數據
③ children:該Znode下的子節點
???????Zookeeper節點類型
Znode有兩種,分別為臨時節點和永久節點。
節點的類型在創建時即被確定,并且不能改變。
臨時節點:該節點的生命周期依賴于創建它們的會話。一旦會話結束,臨時節點將被自動刪除,當然可以也可以手動刪除。臨時節點不允許擁有子節點。
永久節點:該節點的生命周期不依賴于會話,并且只有在客戶端顯示執行刪除操作的時候,他們才能被刪除。
Znode還有一個序列化的特性,如果創建的時候指定的話,該Znode的名字后面會自動追加一個不斷增加的序列號。序列號對于此節點的父節點來說是唯一的,這樣便會記錄每個子節點創建的先后順序。它的格式為“%10d”(10位數字,沒有數值的數位用0補充,例如“0000000001”)。
這樣便會存在四種類型的Znode節點,分別對應:
PERSISTENT:永久節點
EPHEMERAL:臨時節點
PERSISTENT_SEQUENTIAL:永久節點、序列化
EPHEMERAL_SEQUENTIAL:臨時節點、序列化
總結
以上是生活随笔為你收集整理的2021年大数据ZooKeeper(三):Zookeeper数据模型和节点类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021年大数据ZooKeeper(二)
- 下一篇: 2021年大数据ZooKeeper(四)