1、什么是Zookeeper
» Zookeeper 是 Google 的 Chubby一個開源的實現,是 Hadoop 的分布式協調服務
» 它包含一個簡單的原語集,分布式應用程序可以基於它實現同步服務,配置維護和命名服務等
2、為什么要用Zookeeper
» 大部分分布式應用需要一個主控、協調器或控制器來管理物理分布的子進程(如資源、任務分配等)
» 目前,大部分應用需要開發私有的協調程序,缺乏一個通用的機制
» 協調程序的反復編寫浪費,且難以形成通用、伸縮性好的協調器
» Keepalived:提供通用的分布式鎖服務,用以協調分布式應用但是:
• Keepalived監控節點不好管理
• Keepalive 采用優先級監控
• 沒有協同工作
• 功能單一
• Keepalive可擴展性差
3、Zookeeper的優點
4、Zookeeper的工作原理
1.每個Server在內存中存儲了一份數據;
2.Zookeeper啟動時,將從實例中選舉一個leader(Paxos協議)
3.Leader負責處理數據更新等操作
4.一個更新操作成功,當且僅當大多數Server在內存中成功修改數據。
5、Zookeeper能做什么
» Hadoop,使用Zookeeper的事件處理確保整個集群只有一個NameNode,存儲配置信息等.
» HBase,使用Zookeeper的事件處理確保整個集群只有一個HMaster,察覺HRegionServer聯機和宕機,存儲訪問控制列表等.
...
6、Zookeeper的特性
» Zookeeper是簡單的
» Zookeeper是富有表現力的
» Zookeeper具有高可用性
» Zookeeper采用松耦合交互方式
» Zookeeper是一個資源庫