Zookeeper簡單理解


ZooKeeper是一個高可用的分佈式數據管理與系統協調框架。基於對Paxos算法的實現,使該框架保證了分佈式環境中數據的強一致性,也正是基於這樣的特性,使得ZooKeeper解決很多分佈式問題
1.1 Zookeeper 是 Google 的 Chubby一個開源的實現,是 Hadoop 的分佈式協調服務。包含一個簡單的原語集,分佈式應用程序可以基於她實現同步服務,配置維護和命名服務等。
1.2 爲什麼使用zookeeper
1)大部分分佈式應用需要一個主控、協調或控制器來管理物理分佈的子進程(如資源、任務分配等)
2)大部分應用需要開發私有的協調程序,缺乏一個通用的機制。
3)協調程序的反覆編寫浪費,且難以形成通用伸縮性好的協調器
4)zookeeper 提供通用的分佈式鎖服務,用以協調分佈式應用。
1.3 zookeeper使用
»Hadoop2.0,使用Zookeeper的事件處理確保整個集羣只有一個活躍的NameNode,存儲配置信息等.
»HBase,使用Zookeeper的事件處理確保整個集羣只有一個HMaster,察覺HRegionServer聯機和宕機,存儲訪問控制列表等.
1.4 zookeeper的特性
»Zookeeper是簡單的
»Zookeeper是富有表現力的
»Zookeeper具有高可用性
»Zookeeper採用鬆耦合交互方式
»Zookeeper是一個資源庫
1.6 zookeeper的數據模型
»層次化的目錄結構,命名符合常規文件系統規範
»每個節點在zookeeper中叫做znode,並且其有一個唯一的路徑標識
»節點Znode可以包含數據和子節點,但是EPHEMERAL類型的節點不能有子節點
»Znode中的數據可以有多個版本,比如某一個路徑下存有多個數據版本,那麼查詢這個路徑下的數據就需要帶上版本
»客戶端應用可以在節點上設置監視器
»節點不支持部分讀寫,而是一次性完整讀寫
1.7 zookeeper的節點
»Znode有兩種類型,短暫的(ephemeral)和持久的(persistent)
»Znode的類型在創建時確定並且之後不能再修改
»短暫znode的客戶端會話結束時,zookeeper會將該短暫znode刪除,短暫znode不可以有子節點
»持久znode不依賴於客戶端會話,只有當客戶端明確要刪除該持久znode時纔會被刪除
»Znode有四種形式的目錄節點,PERSISTENT、PERSISTENT_SEQUENTIAL、EPHEMERAL、EPHEMERAL_SEQUENTIAL
1.8 zookeeper的角色
»領導者(leader),負責進行投票的發起和決議,更新系統狀態
»學習者(learner),包括跟隨者(follower)和觀察者(observer),follower用於接受客戶端請求並想客戶端返回結果,在選主過程中參與投票
»Observer可以接受客戶端連接,將寫請求轉發給leader,但observer不參加投票過程,只同步leader的狀態,observer的目的是爲了擴展系統,提高讀取速度
»客戶端(client),請求發起方
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章