天天看點

Hadoop資源排程架構YARN

本文概述: 1、YARN概述 2、YARN架構 3、YARN執行流程 4、YARN容錯 5、YARN環境搭建 準備工作:     之前部落客有發過Hadoop叢集環境的搭建以及分布式環境的搭建,可以參考任意部落格     http://blog.csdn.net/qq_32297447/article/details/79204625     http://blog.csdn.net/qq_32297447/article/details/79267327

YARN概述:叢集資源管理(Yet Another Resource Negotiator)

是一個通用的資源管理系統,可為上層應用提供統一的資源管理和排程 它的引入為叢集在使用率、資源統一和資料共享等方面帶來了巨大好處 YARN架構 架構核心元件: ResourceManager NodeManager ApplicationMaster Container 容錯

  1. ResourceManager容錯
  2. NodeManager容錯
  3. ApplicationMaster容錯

master/slaves結構 :1個ResourceManager對應多個NodeManager構成 ApplicationMaster :每個應用程式一個,負責應用程式的管理 1)資料切分 2)為應用程式向RM申請資源(Container),配置設定内部任務 3)與NM通信以啟動/停止任務,Task都是運作在Container中的 4)Task的容錯 ResourceManager 在整個叢集中處于工作狀态的隻有1個,負責叢集資源的統一管理和排程 1)處理用戶端發起的請求(啟動/殺死應用程式) 2)啟動/監控ApplicationMaster,AM挂了,RM将會在另外一個節點上啟動該AM 3) RM要監控NM 4)整個系統的資源配置設定和排程 NodeManager :整個叢集中有多個,負責自己節點的資源使用和管理 1)定時向RM彙報本節點上的資源使用情況和各個Container的運作情況 2)接收和處理來自RM的Container啟動和停止的各種指令 3)處理來自AM的指令 4)本節點上的資源管理和任務管理 Container :對任務運作環境的封裝,CPU、記憶體等這些資源以及環境變量、啟停指令等等與任務相關的資訊 YARN執行流程 1)使用者向YARN(RM)送出作業 2)RM為該作業配置設定第一個Container 3)RM與對應的NM通信,要求在這個NM的這個Container上啟動應用程式的ApplicationMaster 4)AM首先向RM注冊,這樣使用者就可以通過RM來查詢到作業的運作狀況,然後AM将為各個任務申請資源 5)一旦AM申請到資源後,就要與對應的NM通信,要求NM啟動任務 6)NM啟動任務 YARN容錯 RM:單點故障==> RM HA(切換)/RM Restart(重新開機) NM:挂了,RM将失敗的任務會告訴AM,讓AM來決定是否處理失敗的任務 AM:挂了,由RM負責重新開機 有些task運作ok,但是整個作業還沒運作完,會儲存已經運作完成的task,重新開機後無需全部重新運作 YARN環境搭建 mapred-site.xml <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> yarn-site.xml <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> 啟動YARN: sbin/start-yarn.sh 檢測是否啟動成功: 1)jps NodeManager ResourceManager 2)web 頁面

繼續閱讀