大数据培训:Zookeeper集群管理与选举
1.集群機器監(jiān)控
這通常用于那種對集群中機器狀態(tài),機器在線率有較高要求的場景,能夠快速對集群中機器變化作出響應(yīng)。這樣的場景中,往往有一個監(jiān)控系統(tǒng),實時檢測集群機器是否存活。過去的做法通常是:監(jiān)控系統(tǒng)通過某種手段(比如ping)定時檢測每個機器,或者每個機器自己定時向監(jiān)控系統(tǒng)匯報“我還活著”。 這種做法可行,但是存在兩個比較明顯的問題:
- 集群中機器有變動的時候,牽連修改的東西比較多。
- 有一定的延時。
利用ZooKeeper有兩個特性,就可以實時另一種集群機器存活性監(jiān)控系統(tǒng):
- 客戶端在節(jié)點 x 上注冊一個Watcher,那么如果 x?的子節(jié)點變化了,會通知該客戶端。
- 創(chuàng)建EPHEMERAL類型的節(jié)點,一旦客戶端和服務(wù)器的會話結(jié)束或過期,那么該節(jié)點就會消失。
例如,監(jiān)控系統(tǒng)在 /clusterServers 節(jié)點上注冊一個Watcher,以后每動態(tài)加機器,那么就往 /clusterServers 下創(chuàng)建一個 EPHEMERAL類型的節(jié)點:/clusterServers/{hostname}. 這樣,監(jiān)控系統(tǒng)就能夠?qū)崟r知道機器的增減情況,至于后續(xù)處理就是監(jiān)控系統(tǒng)的業(yè)務(wù)了。
2.Master選舉
在分布式環(huán)境中,相同的業(yè)務(wù)應(yīng)用分布在不同的機器上,有些業(yè)務(wù)邏輯(例如一些耗時的計算,網(wǎng)絡(luò)I/O處理),往往只需要讓整個集群中的某一臺機器進行執(zhí)行,其余機器可以共享這個結(jié)果,這樣可以大大減少重復(fù)勞動,提高性能,于是這個master選舉便是這種場景下的碰到的主要問題。
利用ZooKeeper的強一致性,能夠保證在分布式高并發(fā)情況下節(jié)點創(chuàng)建的全局唯一性,即:同時有多個客戶端請求創(chuàng)建 /currentMaster 節(jié)點,最終一定只有一個客戶端請求能夠創(chuàng)建成功。利用這個特性,就能很輕易的在分布式環(huán)境中進行集群選取了。
另外,這種場景演化一下,就是動態(tài)Master選舉。這就要用到?EPHEMERAL_SEQUENTIAL類型節(jié)點的特性了。
上文中提到,所有客戶端創(chuàng)建請求,最終只有一個能夠創(chuàng)建成功。在這里稍微變化下,就是允許所有請求都能夠創(chuàng)建成功,但是得有個創(chuàng)建順序,于是所有的請求最終在ZK上創(chuàng)建結(jié)果的一種可能情況是這樣: /currentMaster/{sessionId}-1 ,?/currentMaster/{sessionId}-2 ,?/currentMaster/{sessionId}-3 ….. 每次選取序列號最小的那個機器作為Master,如果這個機器掛了,由于他創(chuàng)建的節(jié)點會馬上小時,那么之后最小的那個機器就是Master了。
3.搜索系統(tǒng)
在搜索系統(tǒng)中,如果集群中每個機器都生成一份全量索引,不僅耗時,而且不能保證彼此之間索引數(shù)據(jù)一致。因此讓集群中的Master來進行全量索引的生成,然后同步到集群中其它機器。另外,Master選舉的容災(zāi)措施是,可以隨時進行手動指定master,就是說應(yīng)用在zk在無法獲取master信息時,可以通過比如http方式,向一個地方獲取master。
在Hbase中,也是使用ZooKeeper來實現(xiàn)動態(tài)HMaster的選舉。在Hbase實現(xiàn)中,會在ZK上存儲一些ROOT表的地址和 HMaster的地址,HRegionServer也會把自己以臨時節(jié)點(Ephemeral)的方式注冊到Zookeeper中,使得HMaster可以隨時感知到各個HRegionServer的存活狀態(tài),同時,一旦HMaster出現(xiàn)問題,會重新選舉出一個HMaster來運行,從而避免了 HMaster的單點問題。
轉(zhuǎn)載于:https://www.cnblogs.com/Bigata/p/9583371.html
總結(jié)
以上是生活随笔為你收集整理的大数据培训:Zookeeper集群管理与选举的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 设计模式五: 原型模式(Prototyp
- 下一篇: 1112 Stucked Keyboar