Zookeeper之入門(原理、基礎知識)
Zookeeper介紹
Zookeeper是分布式應用程序的協調服務框架,是Hadoop的重要組件。ZK要解決的問題:
1.分布式環境下的數據一致性。
2.分布式環境下的統一命名服務
3.分布式環境下的配置管理
4.分布式環境下的分布式鎖
5.集群管理問題
Zookeeper指令與數據結構
Zk數據結構
1. ZK有一個最開始的節點
2. ZK的節點叫做znode節點
3. 每個znode節點都可存儲數據
4. 每個znode節點都可創建自己的子節點
5. 多個znode節點共同形成了znode樹
6. Znode樹的維系實在內存中,目的是供用戶快速的查詢
7. 每個znode節點都是一個路徑(通過路徑來定位這個節點)
8. 每個路徑名都是唯一的。
ZK指令
指令 |
示例 |
ls查看指令 |
ls / |
create創建節點指令,註意,在創建節點時,要分配初始數據。 |
create /zk01 hello create /zk02 ‘’ |
get查看節點數據指令 hello 數據 cZxid = 0x2 ctime = Mon May 15 05:58:32 PDT 2017創建節點的時間戳 mZxid = 0x2 mtime = Mon May 15 05:58:32 PDT 2017修改此節點數據的最新時間戳 pZxid = 0x2 cversion = 0 dataVersion = 0數據版本號,每當數據發生編號,版本號遞增1 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 5數據大小 numChildren = 0子節點個數 |
get /zk01 |
set更新節點數據指令(執行後mtime、dataVersion可定會放生變化,dataLength可能會變化) |
set /zk01 hellozk |
delete刪除節點 |
delete /zk01 |
create指令補充: 1. 創建子節點 2. Zk節點分四種類型:分別是: 普通持久節點: 普通臨時節點:創建此臨時節點的客戶端失去和zk連接後,此節點消失.zk是通過臨時節點監控哪個服務器掛掉的。
順序持久節點:會根據用戶指定的節點路徑,自動分配一個遞增的順序號。(順序節點實現分布式鎖的效果,服務器1搶到zk05分配zk050001,服務器2搶到zk05分配zk050002) 順序臨時節點: |
1. create /zk01/node01 hello 2. 2.1.create /zk01 hello 2.2. create –e /zk02 abc 2.4.create –s -e /zk05 abcd zk050000000003 再創建一個就是: zk050000000004 |
Zookeeper之入門(原理、基礎知識)