1、什麼是Zookeeper
ZooKeeper 顧名思義 動物園管理員,他是拿來管大象(Hadoop) 、 蜜蜂(Hive) 、 小豬(Pig) 的管理員, Apache Hbase和 Apache Solr 以及LinkedIn sensei 等項目中都採用到了 Zookeeper。ZooKeeper是一個分佈式的,開放源碼的分佈式應用程序協調服務,ZooKeeper是以Fast Paxos算法爲基礎,實現同步服務,配置維護和命名服務等分佈式應用。
上面的解釋感受還不夠,太官方了。Zookeeper 從程序員的角度來說能夠理解爲Hadoop的總體監控系統。若是namenode,HMaster宕機後,這時候Zookeeper 的從新選出leader。這是它最大的做用所在。下面詳細介紹zookeeper的做用
2、zookeeper的做用
1.Zookeeper增強集羣穩定性
Zookeeper經過一種和文件系統很像的層級命名空間來讓分佈式進程互相協同工做。這些命名空間由一系列數據寄存器組成,咱們也叫這些數據寄存器爲znodes。這些znodes就有點像是文件系統中的文件和文件夾。和文件系統不同的是,文件系統的文件是存儲在存儲區上的,而zookeeper的數據是存儲在內存上的。同時,這就意味着zookeeper有着高吞吐和低延遲。
Zookeeper實現了高性能,高可靠性,和有序的訪問。高性能保證了zookeeper能應用在大型的分佈式系統上。高可靠性保證它不會因爲單一節點的故障而形成任何問題。有序的訪問能保證客戶端能夠實現較爲複雜的同步操做。
2.Zookeeper增強集羣持續性
ZooKeeper Service
組成Zookeeper的各個服務器必需要能相互通訊。他們在內存中保存了服務器狀態,也保存了操做的日誌,而且持久化快照。只要大多數的服務器是可用的,那麼Zookeeper就是可用的。
客戶端鏈接到一個Zookeeper服務器,而且維持TCP鏈接。而且發送請求,獲取回覆,獲取事件,而且發送鏈接信號。若是這個TCP鏈接斷掉了,那麼客戶端能夠鏈接另一個服務器。
Zookeeper保證集羣有序性
Zookeeper使用數字來對每個更新進行標記。這樣能保證Zookeeper交互的有序。後續的操做能夠根據這個順序實現諸如同步操做這樣更高更抽象的服務。
Zookeeper保證集羣高效
Zookeeper的高效更表如今以讀爲主的系統上。Zookeeper能夠在千臺服務器組成的讀寫比例大約爲10:1的分佈系統上表現優異。
數據結構和分等級的命名空間
Zookeeper的命名空間的結構和文件系統很像。一個名字和文件同樣使用/的路徑表現,zookeeper的每一個節點都是被路徑惟一標識
3、zookeeper在Hadoop及hbase中具體做用
Hadoop有NameNode,HBase有HMaster,爲何還須要zookeeper,下面給你們經過例子給你們介紹。
一個Zookeeper的集羣中,3個Zookeeper節點.一個leader,兩個follower的狀況下,停掉leader,而後兩個follower選舉出一個leader.獲取的數據不變.我想Zookeeper可以幫助Hadoop作到:
Hadoop,使用Zookeeper的事件處理確保整個集羣只有一個NameNode,存儲配置信息等.
HBase,使用Zookeeper的事件處理確保整個集羣只有一個HMaster,察覺HRegionServer聯機和宕機,存儲訪問控制列表等.html
什麼是Zookeeper,Zookeeper的做用是什麼,在Hadoop及hbase中具體做用是什麼
http://www.aboutyun.com/thread-6628-1-1.html
(出處: about雲開發)
node