教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

MapReduce是怎么和yarn連接到一起的?

更新時間:2023年09月11日10時27分 來源:傳智教育 瀏覽次數(shù):

好口碑IT培訓(xùn)

  MapReduce是一種用于分布式計算的編程模型,而YARN(Yet Another Resource Negotiator)是Hadoop生態(tài)系統(tǒng)中的資源管理器。它們一起工作以實現(xiàn)在Hadoop集群上執(zhí)行MapReduce作業(yè)。以下是MapReduce如何與YARN連接在一起的詳細(xì)說明:

  1.Hadoop生態(tài)系統(tǒng):

  MapReduce和YARN都是Hadoop生態(tài)系統(tǒng)的一部分,它們協(xié)同工作來處理大規(guī)模數(shù)據(jù)集。Hadoop生態(tài)系統(tǒng)還包括Hadoop分布式文件系統(tǒng)(HDFS)等其他組件。

  2.YARN架構(gòu):

  YARN是Hadoop的資源管理器,負(fù)責(zé)在集群上分配和管理資源。它包括以下關(guān)鍵組件:

  ·ResourceManager(RM):全局資源管理器,負(fù)責(zé)集群資源的分配和管理。

  ·NodeManager(NM):運行在每個節(jié)點上的代理,負(fù)責(zé)監(jiān)控該節(jié)點上的資源使用情況。

  ·ApplicationMaster(AM):每個應(yīng)用程序(例如MapReduce作業(yè))都有一個獨立的AM,它負(fù)責(zé)協(xié)調(diào)任務(wù)的執(zhí)行和資源的申請。

  3.MapReduce框架:

  MapReduce作業(yè)被分為兩個主要階段:Map階段和Reduce階段。在Map階段,輸入數(shù)據(jù)被拆分成小塊,每個塊由一個Mapper任務(wù)處理。在Reduce階段,Mapper的輸出被分組和排序,然后由多個Reducer任務(wù)聚合結(jié)果。

  4.MapReduce與YARN連接:

  MapReduce作業(yè)在YARN上運行時,以下是它們是如何連接的:

  ·作業(yè)提交:當(dāng)用戶提交MapReduce作業(yè)時,作業(yè)客戶端(JobClient)會將作業(yè)描述(作業(yè)配置、Mapper和Reducer類等)發(fā)送給YARN ResourceManager。

  ·資源分配:YARN ResourceManager分配一個容器(container)來運行作業(yè)的ApplicationMaster。這個容器包括資源(CPU、內(nèi)存等)和作業(yè)所需的所有依賴。

  ·ApplicationMaster啟動:一旦分配了容器,YARN會啟動MapReduce作業(yè)的ApplicationMaster進程。ApplicationMaster是作業(yè)的主管,負(fù)責(zé)與ResourceManager通信,并協(xié)調(diào)作業(yè)的執(zhí)行。

  ·任務(wù)分配:ApplicationMaster與YARN ResourceManager協(xié)商資源分配,以便啟動Mapper和Reducer任務(wù)。它將任務(wù)分配給可用的NodeManager,以便在集群中運行任務(wù)。

  ·任務(wù)執(zhí)行:NodeManager上的任務(wù)進程(Mapper或Reducer)開始執(zhí)行,并將輸出寫入HDFS或其他指定位置。

  ·進度和狀態(tài)監(jiān)控:ApplicationMaster負(fù)責(zé)監(jiān)控任務(wù)的進度和狀態(tài),并將相關(guān)信息傳遞給YARN ResourceManager。這使得ResourceManager能夠了解作業(yè)的整體狀態(tài)。

  ·作業(yè)完成:一旦所有任務(wù)都完成,ApplicationMaster會通知ResourceManager,然后它可以釋放分配給該作業(yè)的資源。

  5.錯誤處理:

  YARN ResourceManager和ApplicationMaster會協(xié)同處理錯誤和故障情況,以確保作業(yè)的可靠執(zhí)行。如果某個任務(wù)失敗,它可以重新分配到另一個節(jié)點上運行。

  總之,MapReduce與YARN緊密集成,通過YARN的資源管理和任務(wù)調(diào)度功能來實現(xiàn)在Hadoop集群上執(zhí)行分布式MapReduce作業(yè)。這種集成允許有效地利用集群資源,并提供高可用性和容錯性。

0 分享到:
和我們在線交談!