鍍金池/ 教程/ 大數(shù)據(jù)/ YARN - ResourceManager
YARN - Failover
MapReduce - Shuffle
Hadoop配置
MapReduce - 讀取數(shù)據(jù)
Hadoop - MapReduce
YARN - Container
Hadoop 測(cè)試
MapReduce - Mapper
Hadoop - 參考
YARN - ResourceManager
HDFS - 可靠性
HDFS - 讀文件
Hadoop - 簡(jiǎn)介
YARN - ApplicationMaster
Hadoop - IO
Hadoop 監(jiān)控
MapReduce - 編程
Hadoop - YARN
Hadoop - HDFS
HDFS - 命令工具
HDFS - 寫(xiě)文件
YARN - NodeManager
Hadoop安裝

YARN - ResourceManager

負(fù)責(zé)全局的資源管理和任務(wù)調(diào)度,把整個(gè)集群當(dāng)&##x6210;計(jì)算資源池,只關(guān)注分配,不管應(yīng)用,且不負(fù)責(zé)容錯(cuò)

資源管理

  1. 以前資源是每個(gè)節(jié)點(diǎn)分成一個(gè)個(gè)的Map slot和Reduce slot,現(xiàn)在是一個(gè)個(gè)Container,每個(gè)Container可以根據(jù)需要運(yùn)行ApplicationMaster、Map、Reduce或者任意的程序
  2. 以前的資源分配是靜態(tài)的,目前是動(dòng)態(tài)的,資源利用率更高
  3. Container是資源申請(qǐng)的單位,一個(gè)資源申請(qǐng)格式:<resource-name, priority, resource-requirement, number-of-containers>, resource-name:主機(jī)名、機(jī)架名或*(代表任意機(jī)器), resource-requirement:目前只支持CPU和內(nèi)存
  4. 用戶(hù)提交作#x4F5C;業(yè)到ResourceManager,然后在某個(gè)NodeManager上分配一個(gè)Container來(lái)運(yùn)行ApplicationMaster,ApplicationMaster再根據(jù)自身程序需要向ResourceManager申請(qǐng)資源
  5. YARN有一套Container的生命周期管理機(jī)制,而ApplicationMaster和其Container之間的管理是應(yīng)用程序自己定義的

任務(wù)調(diào)度

  1. 只關(guān)注資源的使用情況,根據(jù)需求合理分配資源
  2. Scheluer可以根據(jù)申請(qǐng)的需要,在特定的機(jī)器上申請(qǐng)?zhí)囟ǖ馁Y源(ApplicationMaster負(fù)責(zé)申請(qǐng)資源時(shí)的數(shù)據(jù)本地化的考慮,ResourceManager將盡量滿(mǎn)足其申請(qǐng)需求,在指定的機(jī)器上分配Container,從而減少數(shù)據(jù)移動(dòng))

內(nèi)部結(jié)構(gòu)

http://wiki.jikexueyuan.com/project/hadoop/images/yarn-resource-manager.png" alt="" />

  • Client Service: 應(yīng)用提交、終止、輸出信息(應(yīng)用、隊(duì)列、集群等的狀態(tài)信息)
  • Adaminstration Service: 隊(duì)列、節(jié)點(diǎn)、Client權(quán)限管理
  • ApplicationMasterService: 注冊(cè)、終止ApplicationMaster, 獲取ApplicationMaster的資源申請(qǐng)或取消的請(qǐng)求,并將其異步地傳給Scheduler, 單線(xiàn)程處理
  • ApplicationMaster Liveliness Monitor: 接收ApplicationMaster的心跳消息,如果某個(gè)ApplicationMaster在一定時(shí)間內(nèi)沒(méi)有發(fā)送心跳,則被任務(wù)失效,其資源將會(huì)被回收,然后ResourceManager會(huì)重新分配一個(gè)ApplicationMaster運(yùn)行該應(yīng)用(默認(rèn)嘗試2次)
  • Resource Tracker Service: 注冊(cè)節(jié)點(diǎn), 接收各注冊(cè)節(jié)點(diǎn)的心跳消息
  • NodeManagers Liveliness Monitor: 監(jiān)控每個(gè)節(jié)點(diǎn)的心跳消息,如果長(zhǎng)時(shí)間沒(méi)有收到心跳消息,則認(rèn)為該節(jié)點(diǎn)無(wú)效, 同時(shí)所有在該節(jié)點(diǎn)上的Container都標(biāo)記成無(wú)效,也不會(huì)調(diào)度任務(wù)到該節(jié)點(diǎn)運(yùn)行
  • ApplicationManager: 管理應(yīng)用程序,記錄和管理已完成的應(yīng)用
  • ApplicationMaster Launcher: 一個(gè)應(yīng)用提交后,負(fù)責(zé)與NodeManager交互,分配Container并加載ApplicationMaster,也負(fù)責(zé)終止或銷(xiāo)毀
  • YarnScheduler: 資源調(diào)度分配, 有FIFO(with Priority),F(xiàn)air,Capacity方式
  • ContainerAllocationExpirer: 管理已分配但沒(méi)有啟用的Container,超過(guò)一定時(shí)間則將其回收
上一篇:HDFS - 可靠性下一篇:MapReduce - 編程