YARN學習筆記

YARN產生背景

Hadoop1.x時:

  • MapReduce: Master/Slave架構,1個JobTracker帶多個TaskTracker

JobTracker:

負責資源管理和做業調度node

TaskTracker:

  • 按期向JT彙報本節點的健康情況、資源使用狀況、做業執行狀況;
  • 接收來自JT的命令: 啓動任務/殺死任務

YARN:

不一樣計算框架能夠共享同一個HDFS集羣上的數據,享受總體的資源調度bash

XXX ON YARN的好處:

與其餘計算機框架共享集羣資源,按資源須要分配,進而提升集羣資源的利用率架構

XXX: Spark/Storm/Flink 框架

image.png

image.png

YARN 架構

1RM + N個NM oop

image.png

  1. ResourceManager(RM): 整個集羣同一時間提供服務(active狀態)的RM只有一個,負責集羣資源的統一管理和調度
  • 提交一個做業、殺死一個做業
  • 處理客戶端的請求(啓動/殺死):
  • 監控咱們的NM,一旦某個NM掛了,那麼該NM上運行的任務須要告訴咱們的AM來如何進行處理
  1. NodeManager(NM):整個集羣中有N個負責單個節點的資源管理和使用以及task的運行狀況
  • 整個集羣中有多個,負責本身自己節點資源管理和使用
  • 定時向RM彙報本節點的資源使用狀況
  • 接收並處理來自RM的各類命令: 啓動Container
  • 處理來自AM的命令
  • 單個節點的資源管理
  1. ApplicationMaster(AM):每一個應用/做業對應一個,負責應用程序的管理
  • 每一個應用程序對應一個: MR、Spark,負責應用程序的管理
  • 爲應用程序向RM申請資源(core、memory),分配給內部task
  • 須要與NM通訊: 啓動/中止task,task是運行在container裏面,AM也是運行在containe
  1. Container
  • 封裝了CPU、Memory等資源的一個容器
  • 是一個任務運行環境的抽象
  1. Client
  • 提交做業
  • 查詢做業的運行進度
  • 殺死做業
    image.png

YARN 執行流程

image.png

  1. 用戶向YARN提交一個做業(例如Spark/Storm做業)
  2. ResourceManager會給做業分配第一個Continer,假設運行在圖中第二個NodeManager
  3. ResourceManager與對應NodeManager進行通訊,要求啓動對應的Continer用來啓動應用程序,ApplicationMaster
  4. ApplicationMaster啓動後,與ResourceManager獲取資源並進行註冊
  5. ApplicationMaster向ResourceManager申請Core,Memory,而後在對應的NodeManager上開始啓動任務
  6. 在每一個NodeManager上啓動相應的continer,並把task運行在Continer

image.png

YARN 環境搭建

1.etc/hadoop/mapred-site.xml:spa

<property> 
    <name>mapreduce.framework.name</name> 
    <value>yarn</value> 
</property>
複製代碼

2.etc/hadoop/yarn-site.xml:code

<property>
           <name>yarn.nodemanager.aux-services</name>       
          <value>mapreduce_shuffle</value> 
    </property>
複製代碼

3.啓動YARN相關的進程orm

sbin/start-yarn.shcdn

4.驗證xml

jps

http://host:8088

相關文章
相關標籤/搜索