一、Zookeeper概述 1.Zookeeper是Hadoop生態的管理者,它致力於開發和維護開源伺服器,實現高度可靠的分散式協調。 2.Zookeeper的兩大功能: (1)存儲數據 (2)監聽 3.Zookeeper的工作機制,如圖: 4.Zookeeper存儲結構,以樹狀結構存儲 5.Zoo ...
一、Zookeeper概述
1.Zookeeper是Hadoop生態的管理者,它致力於開發和維護開源伺服器,實現高度可靠的分散式協調。
2.Zookeeper的兩大功能:
(1)存儲數據
(2)監聽
3.Zookeeper的工作機制,如圖:
4.Zookeeper存儲結構,以樹狀結構存儲
5.Zookeeper的應用場景
(1)集群統一的配置、命名管理
比如搭建hdfs集群時,修改完配置文件要將文件發送到其他機器中,
zookeeper可以快速的將配置文件發送到所有機器;
再比如百度的功能變數名稱:www.baidu.com,這個功能變數名稱其實對應了許多伺服器,
zookeeper的一個目錄結構命名為baidu,其子節點對應了很多伺服器,zookeeper直接分配ip即可。
(2)伺服器的動態上下線感知
比如qq好友上下線時的提示音
(3)負載均衡
可以使每個伺服器的訪問量大致相同
二、Zookeeper集群的安裝部署
1.登陸官網下載安裝包(本人使用的是3.4.10),上傳到linex集群並解壓;
zookeeper.apache.org
tar -zxvf zookeeper-3.4.10.tar.gz
2.進入zookeeper/conf下,重命名zoo-sample.cfg為zoo.cfg
進入zoo.cfg文件,修改配置信息:
dataDir=/root/hd/zookeeper-3.4.10/zkData
################cluster#####################
server.1=hd1-1:2888:3888
server.2=hd1-2:2888:3888
server.3=hd1-3:2888:3888
保存並退出;
3.回到zookeepr目錄下,創建zkData文件夾,進入該文件夾創建文件myid
編輯文件myid,內容為1;
4.將配置好的zookeeper文件夾發送他集群其他機器
scp -r /root/hd/zookeeper/ hd1-2:/root/hd/
5.修改環境變數(略),並將修改好的環境變數發送到其他機器,並生效!!
6.啟動Zookeeper、關閉Zookeeper、查看狀態
zkServer.sh start
zkServer.sh stop
zkServer.sh status
三、Zookeeper的選舉機制
描述:
1.當第一臺機器啟動時它會給自己一票、第二台啟動時前兩台機器都會給第二台機器一票,以此類推;
2.當第n台機器的票數等於zk集群節點數x的x+1/2時,第n台機器會成為集群的leader;
3.在啟動集群時若機器同時啟動且票數一樣,則會預設選中myid大的機器作為leader。
4.企業中zookeeper集群的節點數為基數台!且zookeeper集群只要有一半以上的節點存活即可正常工作。