Zookeeper解決Hadoop單點問題
Yarn主要由四部分組成
ResourceManage(RM) NodeManage(NM) ApplicationMaster(AM) Container
Yarn單點故障
YARN的單點故障指的是ResourceManager單點問題,ResourceManager負責整個系統的資源管理和排程,內部維護了各個應用程式的ApplictionMaster資訊,NodeManager資訊,資源使用資訊等。考慮到這些資訊絕大多數可以動態重構,因此解決YARN單點故障要比HDFS單點容易很多。與HDFS類似,YARN的單點故障仍採用主備切換的方式完成,不同的是,備節點不會同步主節點的資訊,而是在切換之後,才從共享儲存系統讀取所需資訊。之所以這樣,是因為YARN ResourceManager內部儲存的資訊非常少,大部分可以重構,且這些資訊是動態變化的,很快會變舊。
ResourceManager的工作狀況直接決定了整個YARN框架是否正常運轉。
ResourceManager HA
Yarn在執行期間,會有多個ResourceManager,但只有一個ResourceManager處於active狀態,另外一些則處在standby狀態,當Active節點無法正常工作,比如機器掛掉或重啟,其餘standby狀態的節點會透過競爭選舉產生新的master節點。
在Hadoop HA中,主要由以下幾個元件構成:
(1)MasterHADaemon:與Master服務執行在同一個程式中,可接收外部RPC命令,以控制Master服務的啟動和停止;
(2)SharedStorage:共享儲存系統,active master將資訊寫入共享儲存系統,而standby master則讀取該資訊以保持與active master的同步,從而減少切換時間。常用的共享儲存系統有zookeeper(被YARN HA採用)、NFS(被HDFS HA採用)、HDFS(被MapReduce HA採用)和類bookeeper系統(被HDFS HA採用)。
(3)ZKFailoverController:基於Zookeeper實現的切換控制器,主要由兩個核心元件構成:ActiveStandbyElector和HealthMonitor,其中,ActiveStandbyElector負責與zookeeper叢集互動,透過嘗試獲取全域性鎖,以判斷所管理的master進入active還是standby狀態;HealthMonitor負責監控各個活動master的狀態,以根據它們狀態進行狀態切換。。
(4)Zookeeper叢集:核心功能透過維護一把全域性鎖控制整個叢集有且僅有一個active master。當然,如果ShardStorge採用了zookeeper,則還會記錄一些其他狀態和執行時資訊。
腦裂
腦裂是指在主備切換時,由於切換不徹底或其他原因,導致客戶端和Slave誤以為出現兩個active master,最終使得整個叢集處於混亂狀態。解決腦裂問題,通常採用隔離(Fencing)機制,包括三個方面:
共享儲存fencing:確保只有一個Master往共享儲存中寫資料。
客戶端fencing:確保只有一個Master可以響應客戶端的請求。
Slave fencing:確保只有一個Master可以向Slave下發命令。
ResourceManage(RM) NodeManage(NM) ApplicationMaster(AM) Container
Yarn單點故障
YARN的單點故障指的是ResourceManager單點問題,ResourceManager負責整個系統的資源管理和排程,內部維護了各個應用程式的ApplictionMaster資訊,NodeManager資訊,資源使用資訊等。考慮到這些資訊絕大多數可以動態重構,因此解決YARN單點故障要比HDFS單點容易很多。與HDFS類似,YARN的單點故障仍採用主備切換的方式完成,不同的是,備節點不會同步主節點的資訊,而是在切換之後,才從共享儲存系統讀取所需資訊。之所以這樣,是因為YARN ResourceManager內部儲存的資訊非常少,大部分可以重構,且這些資訊是動態變化的,很快會變舊。
ResourceManager的工作狀況直接決定了整個YARN框架是否正常運轉。
ResourceManager HA
Yarn在執行期間,會有多個ResourceManager,但只有一個ResourceManager處於active狀態,另外一些則處在standby狀態,當Active節點無法正常工作,比如機器掛掉或重啟,其餘standby狀態的節點會透過競爭選舉產生新的master節點。
在Hadoop HA中,主要由以下幾個元件構成:
(1)MasterHADaemon:與Master服務執行在同一個程式中,可接收外部RPC命令,以控制Master服務的啟動和停止;
(2)SharedStorage:共享儲存系統,active master將資訊寫入共享儲存系統,而standby master則讀取該資訊以保持與active master的同步,從而減少切換時間。常用的共享儲存系統有zookeeper(被YARN HA採用)、NFS(被HDFS HA採用)、HDFS(被MapReduce HA採用)和類bookeeper系統(被HDFS HA採用)。
(3)ZKFailoverController:基於Zookeeper實現的切換控制器,主要由兩個核心元件構成:ActiveStandbyElector和HealthMonitor,其中,ActiveStandbyElector負責與zookeeper叢集互動,透過嘗試獲取全域性鎖,以判斷所管理的master進入active還是standby狀態;HealthMonitor負責監控各個活動master的狀態,以根據它們狀態進行狀態切換。。
(4)Zookeeper叢集:核心功能透過維護一把全域性鎖控制整個叢集有且僅有一個active master。當然,如果ShardStorge採用了zookeeper,則還會記錄一些其他狀態和執行時資訊。
腦裂
腦裂是指在主備切換時,由於切換不徹底或其他原因,導致客戶端和Slave誤以為出現兩個active master,最終使得整個叢集處於混亂狀態。解決腦裂問題,通常採用隔離(Fencing)機制,包括三個方面:
共享儲存fencing:確保只有一個Master往共享儲存中寫資料。
客戶端fencing:確保只有一個Master可以響應客戶端的請求。
Slave fencing:確保只有一個Master可以向Slave下發命令。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30316686/viewspace-2114787/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Hadoop中Namenode單點故障的解決方案Hadoop
- Hadoop常見問題及解決方法Hadoop
- Hadoop org.apache.hadoop.util.DiskChecker$DiskErrorException問題等價解決linux磁碟不足解決問題排查HadoopApacheErrorExceptionLinux
- Hadoop之HDFS及NameNode單點故障解決方案Hadoop
- 【問題解決】單機搭建dataguard的問題
- 解決「問題」,不要解決問題
- Hadoop使用常見問題以及解決方法(轉載)Hadoop
- hadoop 2.7.1 jdk 1.7 時區問題以及解決方案.HadoopJDK
- 用簡單的方法解決問題
- 簡單問題複雜著解決
- Cookie Session跨站無法共享問題(單點登入解決方案)CookieSession
- 解決 / 最佳化問題的切入點
- 解決表單重複提交的問題
- 【OracleEBS】 訂單暫掛問題sql解決OracleSQL
- Hadoop問題解決:Unable to load native-hadoop library for your platform...HadoopPlatform
- 解決問題
- 移動端點透問題及其解決方案
- 解決除錯不能命中斷點的問題除錯斷點
- 簡單瞭解下JMM解決什麼問題
- ZooKeeper 監視點詳解
- 發現問題,解決問題
- 2017開發者盤點:是我在解決AI的問題,不是AI解決我的問題AI
- hadoop訪問不到8088解決方案Hadoop
- Spring "reg:zookeeper" 的字首 "reg" 未繫結等類似問題解決方案。Spring
- 6個問題解決產品銷量的痛點
- 解決UILable標點符號居中的問題UI符號
- 安裝crs,無法新增節點問題解決
- yum問題解決
- sqlitedabaseislocked問題解決SQLite
- dump 解決問題
- Tarjan縮點題單 刷題題解
- 解決右鍵選單沒有新建的問題
- Resin的中文問題最簡單的解決方法
- [Zookeeper-01]什麼是zookeeper?& Linux / Windows Zookeeper安裝和部署(單點)LinuxWindows
- [解決問題] Vagrant nginx 站點配置問題(ThinkPHP HTML 無法調跳轉)NginxPHPHTML
- 國產化浪潮下TiDB解決的痛點問題TiDB
- JavaScript解決浮點數算數運算精度問題JavaScript
- 提問題比解決問題更重要