MapReduce On YARN

MapReduce計算框架框架

將計算過程分爲兩個階段:Map和Reducespa

  Map階段並行處理輸入數據;blog

  Reduce階段對Map結果進行彙總資源

Shuffle鏈接Map和Reduce兩個階段it

  Map Task將數據寫到本地磁盤;io

  Reduce Task從每一個Map Task上讀取一份數據;ast

僅適合離線批處理監控

  具備較好的容錯性和擴展性;原理

  適合批處理任務;擴展

缺點:

  啓動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註銷並關閉本身;

相關文章
相關標籤/搜索