好程式設計師大資料培訓之ZooKeeper應用-解決分散式系統單點故障
大資料課程涵蓋Java、spark、Hadoop等內容,而不是Java中涵蓋大資料,現在是大資料的時代,學習大資料課程之前必須先了解大資料課程大綱,否則很容易學到假的大資料課程。
今天小編給大家分享一下:ZooKeeper應用--解決分散式系統單點故障
1.單點故障問題
什麼是分散式系統中的單點故障:通常分散式系統採用主從模式,就是一個主控機連線多個處理節點。主節點負責分發任務,從節點負責處理任務,當我們的主節點發生故障時,那麼整個系統就都癱瘓了,那麼我們把這種故障叫作單點故障。如下圖
傳統方式是採用一個備用節點,這個備用節點定期給當前主節點傳送ping包,主節點收到ping包以後向備用節點傳送回復Ack,當備用節點收到回覆的時候就會認為當前主節點還活著,讓他繼續提供服務。如下圖所示:
但是這種方式就是有一個隱患,就是網路問題,來看一網路問題會造成什麼後果
也就是說我們的主節點的並沒有掛,只是在回覆的時候網路發生故障,這樣我們的備用節點同樣收不到回覆,就會認為主節點掛了,然後備用節點將他的Master例項啟動起來,這樣我們的分散式系統當中就有了兩個主節點也就是---雙Master, 出現雙Master以後我們的從節點就會將它所做的事一部分彙報給了主節點,一部分彙報給了備用節點,這樣服務就全亂了。為了防止出現這種情況,我們引入了 ZooKeeper,它雖然不能避免網路故障,但它能夠保證每時每刻只有一個Master。
2.ZooKeeper解決方案
在引入了Zookeeper以後,我們啟動了兩個主節點,"主節點-A"和"主節點-B"他們啟動以後,都向ZooKeeper去註冊一個節點。我們 假設"主節點-A"鎖註冊地節點是"master-00001","主節點-B"註冊的節點是"master-00002",註冊完以後進行選舉,編號最小的節點將在選舉中獲勝獲得鎖成為主節點,也就是我們的"主節點-A"將會獲得鎖成為主節點,然後"主節點-B"將被阻塞成為一個備用節點。那麼,透過這 種方式就完成了對兩個Master程式的排程。
如果"主節點-A"掛了,這時候他所註冊的節點將被自動刪除,ZooKeeper會自動感知節點的變化,然後再次發出選舉,這時候"主節點-B"將在選舉中獲勝,替代"主節點-A"成為主節點。
3.Master 恢復
如果主節點恢復了,他會再次向ZooKeeper註冊一個節點,這時候他註冊的節點將會是"master-00003",ZooKeeper會感知節點的變化再次發動選舉,這時候"主節點-B"在選舉中會再次獲勝繼續擔任"主節點","主節點-A"會擔任備用節點。
好程式設計師 的大資料技術分享
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913892/viewspace-2639958/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師大資料培訓分享大資料的應用程式設計師大資料
- 好程式設計師大資料培訓分享Hadoop分散式叢集程式設計師大資料Hadoop分散式
- 好程式設計師大資料培訓分享spark之Scala程式設計師大資料Spark
- 好程式設計師大資料培訓分享之hive常用內部函式程式設計師大資料Hive函式
- 好程式設計師大資料培訓分享之《MySQL資料庫》常用函式整理程式設計師大資料MySql資料庫函式
- 好程式設計師大資料培訓分享MapReduce理解程式設計師大資料
- 好程式設計師大資料培訓分享之hive常見自定義函式程式設計師大資料Hive函式
- 好程式設計師大資料培訓分享大資料還學嗎?程式設計師大資料
- 好程式設計師大資料培訓分享HDFS讀流程程式設計師大資料
- 好程式設計師大資料培訓分享之Ambari和ClouderaManager對比程式設計師大資料Cloud
- 好程式設計師大資料培訓分享之hive儲存過程程式設計師大資料Hive儲存過程
- 好程式設計師大資料培訓之Hadoop常見問題程式設計師大資料Hadoop
- 好程式設計師大資料培訓分享之MySQL資料庫SQL簡介程式設計師大資料MySql資料庫
- 好程式設計師大資料培訓分享mysql資料型別程式設計師大資料MySql資料型別
- 好程式設計師大資料培訓分享Hadoop技術優缺點程式設計師大資料Hadoop
- 好程式設計師大資料培訓分享大資料面試寶典一程式設計師大資料面試
- 好程式設計師大資料培訓分享大資料面試寶典二程式設計師大資料面試
- 好程式設計師大資料培訓分享大資料面試寶典三程式設計師大資料面試
- 好程式設計師大資料培訓分享大資料面試寶典四程式設計師大資料面試
- 好程式設計師大資料培訓分享大資料面試寶典六程式設計師大資料面試
- 好程式設計師大資料培訓分享大資料的影響一程式設計師大資料
- 好程式設計師大資料培訓分享大資料兩大核心技術程式設計師大資料
- 好程式設計師大資料培訓教你快速學習MapReduce程式設計師大資料
- 好程式設計師大資料培訓分享Hive基礎知識講解程式設計師大資料Hive
- 好程式設計師大資料培訓分享大資料就業方向有哪些?程式設計師大資料就業
- 好程式設計師大資料培訓分享:Hadoop叢集同步程式設計師大資料Hadoop
- 好程式設計師大資料培訓分享Spark技術總結程式設計師大資料Spark
- 好程式設計師大資料培訓分享MySQL8.0新特性程式設計師大資料MySql
- 好程式設計師Python培訓之詳解eval好與壞程式設計師Python
- 好程式設計師大資料學習路線分享分散式檔案系統HDFS程式設計師大資料分散式
- 好程式設計師大資料培訓分享Hadoop怎樣處理資料?程式設計師大資料Hadoop
- 好程式設計師大資料學習路線之zookeeper乾貨程式設計師大資料
- 好程式設計師大資料培訓分享HBase Filter過濾器概述程式設計師大資料Filter過濾器
- 好程式設計師大資料培訓分享Hadoop入門進階程式設計師大資料Hadoop
- 好程式設計師大資料培訓分享Hadoop的shuffle過程程式設計師大資料Hadoop
- 好程式設計師大資料培訓分享如何區分Hive與HBase程式設計師大資料Hive
- 好程式設計師大資料培訓分享Spark需要什麼基礎?程式設計師大資料Spark
- 好程式設計師大資料培訓分享SQL最佳化方案精解十則程式設計師大資料SQL