好程式設計師大資料技術分享:Zookeeper叢集管理與選舉
大資料技術的學習,逐漸成為很多程式設計師的必修課,因為趨勢也是因為自己的職業生涯。在各個技術社群分享交流成為很多人學習的方式,今天很榮幸找到好程式設計師 大資料培訓 給我們分享一些大資料基礎知識,大家可以一起學習!
1.叢集機器監控
這通常用於那種對叢集中機器狀態,機器線上率有較高要求的場景,能夠快速對叢集中機器變化作出響應。這樣的場景中,往往有一個監控系統,實時檢測叢集機器是否存活。過去的做法通常是:監控系統透過某種手段(比如ping)定時檢測每個機器,或者每個機器自己定時向監控系統彙報“我還活著”。 這種做法可行,但是存在兩個比較明顯的問題:
叢集中機器有變動的時候,牽連修改的東西比較多。
有一定的延時。
利用ZooKeeper有兩個特性,就可以實時另一種叢集機器存活性監控系統:
客戶端在節點 x 上註冊一個Watcher,那麼如果 x?的子節點變化了,會通知該客戶端。
建立EPHEMERAL型別的節點,一旦客戶端和伺服器的會話結束或過期,那麼該節點就會消失。
例如,監控系統在 /clusterServers 節點上註冊一個Watcher,以後每動態加機器,那麼就往 /clusterServers 下建立一個 EPHEMERAL型別的節點:/clusterServers/{hostname}. 這樣,監控系統就能夠實時知道機器的增減情況,至於後續處理就是監控系統的業務了。
2.Master選舉
在分散式環境中,相同的業務應用分佈在不同的機器上,有些業務邏輯(例如一些耗時的計算,網路I/O處理),往往只需要讓整個叢集中的某一臺機器進行執行,其餘機器可以共享這個結果,這樣可以大大減少重複勞動,提高效能,於是這個master選舉便是這種場景下的碰到的主要問題。
利用ZooKeeper的強一致性,能夠保證在分散式高併發情況下節點建立的全域性唯一性,即:同時有多個客戶端請求建立 /currentMaster 節點,終究一定只有一個客戶端請求能夠建立成功。利用這個特性,就能很輕易的在分散式環境中進行叢集選取了。
另外,這種場景演化一下,就是動態Master選舉。這就要用到?EPHEMERAL_SEQUENTIAL型別節點的特性了。
上文中提到,所有客戶端建立請求,最終只有一個能夠建立成功。在這裡稍微變化下,就是允許所有請求都能夠建立成功,但是得有個建立順序,於是所有的請求最終在ZK上建立結果的一種可能情況是這樣: /currentMaster/{sessionId}-1 ,?/currentMaster/{sessionId}-2 ,?/currentMaster/{sessionId}-3 ….. 每次選取序列號最小的那個機器作為Master,如果這個機器掛了,由於他建立的節點會馬上小時,那麼之後最小的那個機器就是Master了。
3.搜尋系統
在搜尋系統中,如果叢集中每個機器都生成一份全量索引,不僅耗時,而且不能保證彼此之間索引資料一致。因此讓叢集中的Master來進行全量索引的生成,然後同步到叢集中其它機器。另外,Master選舉的容災措施是,可以隨時進行手動指定master,就是說應用在zk在無法獲取master資訊時,可以透過比如http方式,向一個地方獲取master。
在Hbase中,也是使用ZooKeeper來實現動態HMaster的選舉。在Hbase實現中,會在ZK上儲存一些ROOT表的地址和 HMaster的地址,HRegionServer也會把自己以臨時節點(Ephemeral)的方式註冊到Zookeeper中,使得HMaster可以隨時感知到各個HRegionServer的存活狀態,同時,一旦HMaster出現問題,會重新選舉出一個HMaster來執行,從而避免了 HMaster的單點問題
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913892/viewspace-2639595/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師大資料技術分享Zookeeper叢集管理與選舉程式設計師大資料
- 好程式設計師大資料培訓分享:Hadoop叢集同步程式設計師大資料Hadoop
- 好程式設計師大資料培訓分享Hadoop分散式叢集程式設計師大資料Hadoop分散式
- 好程式設計師大資料培訓分享大資料兩大核心技術程式設計師大資料
- 好程式設計師大資料分享Spark任務和叢集啟動流程程式設計師大資料Spark
- 好程式設計師大資料培訓分享Spark技術總結程式設計師大資料Spark
- 好程式設計師大資料筆記之:Hadoop叢集搭建程式設計師大資料筆記Hadoop
- 好程式設計師大資料培訓分享Hadoop技術優缺點程式設計師大資料Hadoop
- 好程式設計師分享大資料三大必備技能程式設計師大資料
- 好程式設計師大資料技術盤點 你都知道嗎程式設計師大資料
- 好程式設計師大資料高階班分享10個大資料專業術語程式設計師大資料
- 好程式設計師大資料培訓分享MapReduce理解程式設計師大資料
- 好程式設計師大資料教程分享大資料之流程控制程式設計師大資料
- 好程式設計師大資料培訓分享大資料的應用程式設計師大資料
- 好程式設計師大資料培訓分享大資料還學嗎?程式設計師大資料
- 好程式設計師大資料學習路線之zookeeper乾貨程式設計師大資料
- 好程式設計師大資料學習路線分享彈性分散式資料集RDD程式設計師大資料分散式
- 好程式設計師大資料培訓分享如何區分Hive與HBase程式設計師大資料Hive
- 好程式設計師大資料培訓分享mysql資料型別程式設計師大資料MySql資料型別
- 好程式設計師大資料學習路線分享MAPREDUCE程式設計師大資料
- 好程式設計師大資料學習路線分享SparkSQl程式設計師大資料SparkSQL
- 好程式設計師大資料培訓分享HDFS讀流程程式設計師大資料
- 好程式設計師大資料培訓分享spark之Scala程式設計師大資料Spark
- 好程式設計師大資料教程分享:HDFS基本概念程式設計師大資料
- 好程式設計師web前端技術分享css盒模型程式設計師Web前端CSS模型
- 好程式設計師技術教程分享JavaScript運動框架程式設計師JavaScript框架
- 好程式設計師大資料學習路線分享大資料之字串程式設計師大資料字串
- 好程式設計師大資料培訓分享大資料的影響一程式設計師大資料
- 搞懂分散式技術5:Zookeeper的配置與叢集管理實戰分散式
- 好程式設計師分享乾貨 彈性分散式資料集RDD程式設計師分散式
- 好程式設計師大資料學習資料之YARN資源管理程式設計師大資料Yarn
- 大資料技術 - Zookeeper大資料
- 好程式設計師大資料教程分享實用的大資料之陣列程式設計師大資料陣列
- 好程式設計師大資料培訓分享大資料就業方向有哪些?程式設計師大資料就業
- 好程式設計師大資料培訓分享大資料面試寶典三程式設計師大資料面試
- 好程式設計師大資料培訓分享大資料面試寶典四程式設計師大資料面試
- 好程式設計師大資料培訓分享大資料面試寶典六程式設計師大資料面試
- 好程式設計師大資料培訓分享大資料面試寶典一程式設計師大資料面試