資源調(diào)度框架YARN

1. YARN產(chǎn)生背景

  1. Hadoop1.x時(shí):MapReduce1.x存在問(wèn)題:?jiǎn)吸c(diǎn)故障&節(jié)點(diǎn)壓力大不易擴(kuò)展&不能支持除了MR以外的任務(wù)
    • MapReduce:Master/Slave架構(gòu),一個(gè)JobTracker帶多個(gè)TaskTracker。
    • JobTracker:負(fù)責(zé)資源管理和作業(yè)調(diào)度。整個(gè)集群中只有一個(gè)JobTracker,如果出現(xiàn)故障,整個(gè)集群就會(huì)崩潰。
    • TaskTracker:定期向JT匯報(bào)本節(jié)點(diǎn)的健康狀況、資源使用情況、作業(yè)執(zhí)行情況;接受到來(lái)自JT的命令:?jiǎn)?dòng)/殺死任務(wù)。
  2. 資源利用率&運(yùn)維成本
  3. YARN:不同計(jì)算框架可以共享同一個(gè)HDFS集群上的數(shù)據(jù),享受整體的資源調(diào)度。
  4. XXX(Spark/MapReduce/Strom/Flink) on YARN的好處:與其他計(jì)算框架共享集群資源,按資源需要分配,進(jìn)而提高集群資源的利用率。

2. YARN概述

  1. Yet Another Resource Negotiator
  2. 通用的資源管理系統(tǒng)
  3. 為上層應(yīng)用提供統(tǒng)一的資源調(diào)度

3. YARN架構(gòu)

yarn架構(gòu).jpg
  1. ResourceManager: RM
    • 整個(gè)集群同一時(shí)間提供服務(wù)的RM只有一個(gè)(生產(chǎn)一般有兩個(gè),一主一備),負(fù)責(zé)集群資源的統(tǒng)一管理和調(diào)度。
    • 處理客戶端請(qǐng)求:提交一個(gè)作業(yè),殺死一個(gè)作業(yè)。
    • 監(jiān)控我們的NM,一旦某個(gè)NM掛了,那么該NM上運(yùn)行的任務(wù)需要告訴我們的AM來(lái)如何進(jìn)行處理(重啟)。
  2. NodeManager: NM
    • 整個(gè)集群中有多個(gè),負(fù)責(zé)自己本身節(jié)點(diǎn)資源管理和使用。
    • 定時(shí)向RM匯報(bào)本節(jié)點(diǎn)的資源使用情況。
    • 接受并處理來(lái)自RM的各種命令:?jiǎn)?dòng)Container。
    • 處理來(lái)自AM的命令。
    • 單個(gè)節(jié)點(diǎn)的資源管理。
  3. ApplicationMaster: AM
    • 每個(gè)應(yīng)用程序?qū)?yīng)一個(gè):MR、Spark、負(fù)責(zé)應(yīng)用程序的管理。
    • 為應(yīng)用程序向RM申請(qǐng)資源(core、memory),分配給內(nèi)部Task處理。
    • 需要與NM通信:?jiǎn)?dòng)/停止task,task是運(yùn)行在container里面,AM也是運(yùn)行在container里面的。
  4. Container
    • 封裝了CPU、Memory等資源的一個(gè)容器。
    • 是一個(gè)任務(wù)運(yùn)行環(huán)境的抽象。
  5. Client
    • 提交作業(yè)
    • 查詢作業(yè)的運(yùn)行進(jìn)度
    • 殺死作業(yè)

4. YARN執(zhí)行流程

yarn調(diào)用流.jpg

5. YARN環(huán)境搭建

  1. mapred-site.xml
<configuration>
    <!--告訴MapReduce,任務(wù)跑在yarn上-->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
  1. yarn-site.xml
<configuration>
    <!--告訴yarn的NodeManage用的哪一個(gè)-->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>
  1. 啟動(dòng)YARN相關(guān)進(jìn)程:sbin/start-yarn.sh
  1. 驗(yàn)證YARN是否啟動(dòng)成功
  2. 停止YARN相關(guān)進(jìn)程:sbin/stop-yarn.sh

6. 提交作業(yè)到Y(jié)ARN執(zhí)行

  1. MapReduce作業(yè)提交到Y(jié)ARN上運(yùn)行
    • 使用Hadoop MapReduce示例程序:/usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.0.jar
    • 啟動(dòng)MR程序:hadoop jar hadoop-mapreduce-examples-3.1.0.jar pi 1 2
    • 使用http://localhost:8088 查看結(jié)構(gòu)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容