標籤:style blog http 使用 strong io 資料 2014
MapReduce計算架構
將計算過程分為兩個階段:Map和Reduce
Map階段平行處理輸入資料;
Reduce階段對Map結果進行匯總
Shuffle串連Map和Reduce兩個階段
Map Task將資料寫到本地磁碟;
Reduce Task從每個Map Task上讀取一份資料;
僅適合離線批處理
具有較好的容錯性和擴充性;
適合批處理任務;
缺點:
啟動Map/Reduce任務開銷大、過多使用磁碟導致IO頻繁等;
MapReduce On YARN(MRv2)
YARN負責資源管理和調度;ApplicationMaster負責任務管理;
MRAppMaster任務調度:
1)YARN將資源分派給MRAppMaster;
2)MRAppMaster進一步將資源分派給內部的任務;
MRAppMaster容錯:
1)MRAppMaster失敗後,由YARN重新啟動;
2)任務失敗後,MRAppMaster重新申請資源;
MapReduce On YARN工作原理
1)使用者向YARN中提交應用程式/作業,其中包括ApplicaitonMaster程式、啟動ApplicationMaster的命令、使用者程式等;
2)ResourceManager為作業分配第一個Container,並與對應的NodeManager通訊,要求它在這個Containter中啟動該作業的ApplicationMaster;
3)ApplicationMaster首先向ResourceManager註冊,這樣使用者可以直接通過ResourceManager查詢作業的運行狀態;然後它將為各個任務申請資源並監控任務的運行狀態,直到運行結束。即重複步驟4-7;
4)ApplicationMaster採用輪詢的方式通過RPC請求向ResourceManager申請和領取資源;
5)一旦ApplicationMaster申請到資源後,便與對應的NodeManager通訊,要求它啟動任務;
6)NodeManager啟動任務;
7)各個任務通過RPC協議向ApplicationMaster彙報自己的狀態和進度,以讓ApplicaitonMaster隨時掌握各個任務的運行狀態,從而可以在任務失敗時重新啟動任務;
在作業運行過程中,使用者可隨時通過RPC向ApplicationMaster查詢作業當前運行狀態;
8)作業完成後,ApplicationMaster向ResourceManager登出並關閉自己;