資源調度框架YARN

一.產生背景

  Hadoop1.0的時候是沒有YARN,MapReduce1.X存在的問題:單點故障&節點壓力大不易擴展node

  JobTracker:負責資源管理和做業調度
  TaskTracker:按期向JobTracker彙報本節點的健康情況、資源使用狀況以及做業執行狀況;架構

  接收來自JobTracker的命令,例如啓動任務或結束任務等。框架

  

  這種架構的缺點也很明顯oop

  

  上圖能夠看到,Hadoop集羣在忙的時候Spark就比較閒,Spark集羣比較忙的時候Hadoop集羣就比較閒,而MPI集羣則是總體並非很忙。這樣就沒法高效的利用資源,由於這些不一樣的集羣沒法互相使用資源。orm

  而YARN就能夠令這些不一樣的框架運行在同一個集羣上,併爲它們調度資源。xml

  XXX on YARN:與其餘計算框架共享集羣資源,按資源須要分配,進而提升集羣資源的利用率。blog

  XXX:Spark/MapReduce/Storm/Flink進程

 

 二.YARN架構

  

  1 ResourceMananger:RM資源

    整個集羣提供服務的RM只有一個(生產中有兩個,一個主,一個備),負責集羣資源的統一管理和調度。it

    處理客戶端的請求:提交一個做業、殺死一個做業。

    監控NM,一旦某個NM掛了,那麼該NM上運行的任務須要告訴AM如何進行處理。

  2 NodeManager:NM

    整個集羣中有多個,負責本身自己節點資源管理和使用。

    定時向RM彙報本節點的資源使用狀況。

    接收並處理來自RM的各類命令:啓動Container等。

    處理來自AM的命令。

    單個節點的資源管理。

  3 ApplicationMaster:AM

    每個應用程序對應一個:MR、Spark,負責應用程序的管理。

    爲每一個應用程序向RM申請資源(core、memory),分配給內部task。

    須要與NM通訊:啓動/中止task,task是運行在Container裏面,AM也是運行在Container裏面。

  4 Container

    封裝了CPU、Memory等資源的一個容器

    是一個任務運行環境的抽象。

  5 Client

    提交做業。

    查詢做業的運行進度。

    殺死做業。

三.環境配置  

  1 yarn-site.xml

    <property>

      <name>yarn.nodemanager.aux-services</name>

      <value>mapreduce_shuffle</value>

    </property>

  2 mapred-site.xml

    <property>

      <name>mapreduce.framework.name</name>

      <value>yarn</value>

    </property>

  3 啓動YARN相關的進程

    sbin/start-yarn.sh

  4 驗證

    jps

      ResourceManager

      NodeManager

    http://192.168.56.102:8088/

  5 中止YARN相關的進程

    sbin/stop-yarn.sh

相關文章
相關標籤/搜索