大數據------MapReduce 計算流程


MapReduce是Hadoop的一個並行計算框架,將一個計算任務拆分成為兩個階段分別是Map階段和Reduce階段.Map Reduce計算框架充分利用了存儲節點(datanode)所在的物理主機的計算資源(內存/CPU/網絡/少許磁盤)進行並行計算.MapReduce框架會在所有的存儲節點上分別啟動一個Node Manager進程實現對存儲節點的計算資源的管理和使用.默認情況下Node Manager會將本進程運行的物理主機的計算資源抽象成8個計算單元,每個單元稱為一個Container,所有Node Manager都必須聽從Resource Manager調度.Resource Manager負責計算資源的統籌分配.

 


 

ResourceManager:統籌計算資源,管理所有的NodeManager,進行資源分配

NodeManager:管理主機上計算資源Container負責向MR匯報自身的狀態信息

MRAppMaster:計算任務的Master,負責申請計算資源,協調計算任務

YarnChild:負責做實際計算的任務/進程(MapTask/ReduceTask)

Container:是計算資源的抽象代表着一組內存/cpu/網絡的占用,無論是MRAppMaster還是YranChild運勢是都需要消耗一個Container邏輯

 


 

 

 

  1. 首先是通過程序員所編寫的MR程序通過命令行本地提交或者IDE跨平台提交

  2. 一個MR程序就是一個Job,Job的信息會給ResourceManager,ResourceManager注冊Job信息

  3. ResouceManager注冊通過后,Job會拷貝相關的資源信息(從HDFS中)

  4. Job緊接着會向ResourceManager提交完整的應用信息(包括資源信息)

  5. ResourceManager通過Job信息計算出當前Job所需要的資源,為Job分配Container(資源的單位)

  6. 這個Container信息會分發給NodeManager,NodeManger會創建MRAppMaster進程

  7. 此時MRAppMaster會初始化Job

  8. 然后會查詢任務的切片

  9. 連接RM,請求分配資源,得到對應的資源,連接對應的NodeManager,在YarnChild上啟動對應的Container

  10. 從分布式文件系統上拷貝Job資源

  11. 執行MR程序

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM