Yarn運行原理了解

YARN運行原理

yarn的前世今生

首先在hadoop1.0版本中,存在的最大問題就是資源管理的問題!

隨着技術的發展,人們已經不在滿足hadoop集羣中只使用mapreduce一個計算框架,人們更希望有一套合理的管理機制來控制整個集羣的資源。

在hadoop中啓動yarn的命令: ./start-yarn.sh

  1. RescoueceManager 是全局資源管理器
  2. NodeManager 是節點資源任務管理器

我們可以理解成RM和NM就是Yarn

Yarn的基本架構

Yarn在總體設計思想上和HDFS差不多的都是主從關係(Master/Slave)

在Hdfs中NameNode是主節點, datanode是從節點

在Yarn中RM是主節點,NM是從節點

詳解RM的組成部分

  1. 調度器: Scheduler
    1. 就是爲了讓我們每一個節點都利用起來,合理的分配和調度的管理器,值得注意的是,調度器真的是一個純調度器,它不負責從事任何具體的應用程序相關的工作
    2. 調度器分爲三種:容量調度器、公平調度器、隊列調度器
  2. 應用程序管理器:Application Manager
    1. AM主要是負責接收client端傳輸的job請求,爲應用程序分配第一個Container(容器/資源池)來運行我們第一個Application Master, 還有就是負責監控Application Master, 並且在失敗的時候重啓 Application Master
    2. 當我們正常提交一個MR任務的時候,我們會在後臺jps查看進程的時候會多了一個MRAppMaster的進程:ApplicationMaster
    3. 首先ApplicationMaster就是一個java程序,只不過他的類名:MRAppMaster
    4. ApplicationMaster負責監控MAP任務和reduce任務,用戶提交的每一個程序都會產生一個AM, 這個AM就是負責整個任務的管理者
  3. Application Master主要功能
    1. 與RM調度器RS協商獲取執行資源
    2. 與NM通信通信,以啓動任務、停止任務;其中涉及到一個東西:資源池/容器(contaniner)
    3. 監控所有旗下的任務的執行狀態,如果失敗則會重啓任務來申請資源
  4. Contaniner
    1. contaniner是Yarn中的抽象資源,它封裝了某個節點的多維度的資源:如內存,CPU,磁盤,網絡,IO
    2. 資源池主要是將節點的資源切分出來組成一個可以單獨運行任務(的容器用來運行任務
    3. 在這裏插入圖片描述

yarn爲什麼誕生?

yarn幹什麼用的?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章