這是zookeeper-3.4.6下載,最近為了解決HDFS的單點故障的問題,采用了HA的方式是實現(xiàn),并通過zookeeper來實現(xiàn)自動切換,既然需自動切換的話,那么必須要安裝zookeeper,我選用的版本是3.4.6。下面詳細(xì)介紹一下其安裝過程。
zookeeper-3.4.6是再講具體的步驟之前,需要說明的是,我安裝zookeeper的集群是用到了五個節(jié)點:分別是hadoop1,hadoop2,hadoop3,hadoop4,hadoop5。也就是說要在這五個節(jié)點上部署zookeeper。這里需要注意一點:zookeeper集群的節(jié)點數(shù)必須是奇數(shù),并且至少為3個。這里涉及到zookeeper的選舉算法。
經(jīng)過將近一年半的開發(fā)之后,Apahce Zookeeper 團隊在 2014年3月10號 發(fā)布新版本 Zookeeper-3.4.6,Zookeeper的上一個版本 3.4.5 于2012年11月18號 發(fā)布。
Zookeeper 分布式服務(wù)框架是 Apache Hadoop 的一個子項目,它主要是用來解決分布式應(yīng)用中經(jīng)常遇到的一些數(shù)據(jù)管理問題,如:統(tǒng)一命名服務(wù)、狀態(tài)同步服務(wù)、集群管理、分布式應(yīng)用配置項的管理等。
Zookeeper-3.4.6 做了大量的 bug 修復(fù)和功能增強,fixes a critical bug that could prevent server from joining an established ensemble。此版本現(xiàn)已提供下載,更多詳細(xì)的更新信息請見 zookeeper release 頁面。
initLimit:這個配置項是用來配置 Zookeeper 接受客戶端(這里所說的客戶端不是用戶連接 Zookeeper服務(wù)器的客戶端,而是 Zookeeper 服務(wù)器集群中連接到 Leader 的 Follower 服務(wù)器)初始化連接時最長能忍受多少個心跳時間間隔數(shù)。當(dāng)已經(jīng)超過 10 個心跳的時間(也就是 tickTime)長度后 Zookeeper 服務(wù)器還沒有收到客戶端的返回信息,那么表明這個客戶端連接失敗?偟臅r間長度就是 5*2000=10 秒。
syncLimit:這個配置項標(biāo)識 Leader 與 Follower 之間發(fā)送消息,請求和應(yīng)答時間長度,最長不能超過多少個 tickTime 的時間長度,總的時間長度就是 2*2000=4 秒。
server.A=B:C:D:其中 A 是一個數(shù)字,表示這個是第幾號服務(wù)器;B 是這個服務(wù)器的IP地址或/etc/hosts文件中映射了IP的主機名;C 表示的是這個服務(wù)器與集群中的 Leader 服務(wù)器交換信息的端口;D 表示的是萬一集群中的 Leader 服務(wù)器掛了,需要一個端口來重新進行選舉,選出一個新的 Leader,而這個端口就是用來執(zhí)行選舉時服務(wù)器相互通信的端口。如果是偽集群的配置方式,由于 B 都是一樣,所以不同的 Zookeeper 實例通信端口號不能一樣,所以要給它們分配不同的端口號。