日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hadoop框架:Yarn基本结构和运行原理

發布時間:2025/3/16 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hadoop框架:Yarn基本结构和运行原理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文源碼:GitHub·點這里 || GitEE·點這里

一、Yarn基本結構

Hadoop三大核心組件:分布式文件系統HDFS、分布式計算框架MapReduce,分布式集群資源調度框架Yarn。Yarn并不是在Hadoop初期就有的,是在Hadoop升級發展才誕生的,典型的Master-Slave架構。

Yarn包括兩個主要進程:資源管理器Resource-Manager,節點管理器Node-Manager。

資源管理器

  • 通常部署在獨立的服務器,處理客戶端請求;
  • 處理集群中的資源分配和調度管理;

節點管理器

  • 管理當前節點上的資源;
  • 執行處理各種具體的命令;
  • 監視節點資源情況,并上報資源管理器;

ApplicationMaster

  • 提供容錯能力,切割數據;
  • 給應用程序申請資源并分配任務;

Container

  • Yarn中的一個動態資源分配的概念;
  • 容器包含了一定量的內存、CPU等計算資源;
  • 由NodeManager進程啟動和管理;

二、基本執行流程

  • 向Yarn提交MapReduce應用程序程序進行調度;
  • RM組件返回資源提交路徑和ApplicationId;
  • RM進程NM進程通信,根據集群資源分配容器;
  • 將MRAppMaster分發到上面分配的容器上面;
  • 運行所需資源提交到HDFS上申請運行MRAppMaster;
  • RM經過上述操作把客戶端請求轉換為Task任務;
  • 容器中運行的就是Map或者Reduce任務;
  • 任務在運行期間和MRAppMaster通信上報狀態;
  • 任務執行結束后進程注銷并且釋放容器資源;

MapReduce應用開發遵循Yarn規范的MapReduceApplicationMaster,所以可以在Yarn上運行,其它計算框架如果也遵守該規范,這樣就實現資源的統一調度管理。

三、資源調度器

調度器的基本作用就是根據節點資源的使用情況和作業需求,將任務調度到各個節點上執行。單理解任務隊列的話關鍵的因素有如下幾個:進出方式,優先級,容量等。

Hadoop作業調度器主要有三種:FIFO、CapacityScheduler和FairScheduler,默認的資源調度器是CapacityScheduler。

先進先出調度器

FIFO一種批處理調度器,調度策略先按照作業的優先級高低,再按照到達時間的先后選擇被執行的作業。

容量調度器

CapacityScheduler支持多個隊列,每個隊列可配置一定的資源量,每個隊列采用FIFO調度策略,計算隊列中正在運行的任務書和計算資源的比值,選中比值小相對空閑的隊列,然后安裝作業優先級和提交時間的排序。為了防止同一個用戶的作業獨占隊列中的資源,該調度器會對同一用戶提交的作業所占資源量進行限定。

例如上面圖例,假設100個slot分為三個隊列(ABC),按照如下分配規則:隊列A給20%的資源,隊列B給50%的資源,隊列C給30%的資源;三個隊列都按照任務的先后順序依次執行,上面的job11、job21、job31是最先運行,也是并行運行。

公平調度器

和容量調度器原理類似,支持多隊列多用戶,每個隊列中的資源量可以配置,同一隊列中的作業公平共享隊列中所有資源。

比如有三個隊列(ABC),每個隊列中的job按照優先級分配資源,優先級越高分配的資源越多,但是每個job都會分配到資源以確保公平。在資源有限的情況下,每個job理想情況下獲得的計算資源與實際獲得的計算資源存在一種差距,,這個差距就叫做缺額。在同一個隊列中,job的資源缺額越大,越先獲得資源優先執行,作業是按照缺額的高低來先后執行的。

四、源代碼地址

GitHub·地址 https://github.com/cicadasmile/big-data-parent GitEE·地址 https://gitee.com/cicadasmile/big-data-parent

推薦閱讀:編程體系整理

序號項目名稱GitHub地址GitEE地址推薦指數
01Java描述設計模式,算法,數據結構GitHub·點這里GitEE·點這里☆☆☆☆☆
02Java基礎、并發、面向對象、Web開發GitHub·點這里GitEE·點這里☆☆☆☆
03SpringCloud微服務基礎組件案例詳解GitHub·點這里GitEE·點這里☆☆☆
04SpringCloud微服務架構實戰綜合案例GitHub·點這里GitEE·點這里☆☆☆☆☆
05SpringBoot框架基礎應用入門到進階GitHub·點這里GitEE·點這里☆☆☆☆
06SpringBoot框架整合開發常用中間件GitHub·點這里GitEE·點這里☆☆☆☆☆
07數據管理、分布式、架構設計基礎案例GitHub·點這里GitEE·點這里☆☆☆☆☆
08大數據系列、存儲、組件、計算等框架GitHub·點這里GitEE·點這里☆☆☆☆☆

總結

以上是生活随笔為你收集整理的Hadoop框架:Yarn基本结构和运行原理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。