MapReduce是Hadoop2.x的一個(gè)計(jì)算框架,利用分治的思想,將一個(gè)計(jì)算量很大的作業(yè)分給很多個(gè)任務(wù),每個(gè)任務(wù)完成其中的一小部分,然后再將結(jié)果合并到一起。將任務(wù)分開處理的過程為map階段,將每個(gè)小任務(wù)的結(jié)果合并到一起的過程為reduce階段。下面先從宏觀上介紹一下客戶端提交一個(gè)作業(yè)時(shí),Hadoop2.x各個(gè)組件之間的聯(lián)系及處理流程。然后我們再具體看看MapReduce計(jì)算框架在執(zhí)行一個(gè)作業(yè)時(shí),做了些什么。
YARN
YARN是Hadoop2.x框架下的資源管理系統(tǒng),其組成部分為:
1)全局資源管理器(global resource manager):整個(gè)系統(tǒng)的資源管理和調(diào)配。
2)節(jié)點(diǎn)管理器(node manager)(每個(gè)節(jié)點(diǎn)都有一個(gè))負(fù)責(zé)任務(wù)的啟動、配置及其資源的監(jiān)控
3)針對每個(gè)應(yīng)用程序的應(yīng)用程序管理器(application-specific application master)(因?yàn)镠adoop2.x支持的計(jì)算框架有很多,不只是MapReduce,還有像storm、spark、Tez不同處理機(jī)制的計(jì)算框架,所以MapReduce是一種應(yīng)用程序,每個(gè)MapRed