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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Hadoop学习之yarn

發布時間:2024/7/5 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hadoop学习之yarn 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Hadoop學習之YARN

1 YARN簡介

1.1 概述

YARN (Yet Another Resource Negotiator)是一個資源調度平臺,負責為運算程序提供服務器運算資源,相當于一個分布式的操作系統平臺,而 MapReduce 等運算程序則相當于運行于操作系統之上的應用程序。

YARN 是 Hadoop2.x 版本中的一個新特性。是為了解決第一代 MapReduce 編程框架的不足,提高集群環境下的資源利用率,使其具有更好的擴展性,可用性,可靠性,向后兼容性,以 及能支持除 MapReduce 以外的更多分布式計算程序。

YARN 并不清楚用戶提交的程序的運行機制,與運行的用戶程序完全解耦,YARN 上可以運行各種類 型的分布式運算程序(MapReduce 只是其中的一種),比如 MapReduce、Storm 程序,Spark 程序等,只要他們各自的框架中有符合YARN 規范的資源請求機制即可,所以yarn 就成為一個通用的資源調度平臺,各種運算集群都可以整合在一個物理集群上,提高資源利用率,方便數據共享。

1.2 產生背景

Hadoop1.x 版本中是沒有yarn的,兩大核心組件為HDFS和MapReduce,HDFS負責分布式存儲,MapReduce負責分布式計算,即負責編程又負責計算(編程套路+計算流程),計算流程的資源都是有MapReduce調度的,MapReduce在進行任務運算的時候是分為兩個進程的jobtracker和tasktracker。

jobtracker:計算的主節點,存在單點故障。主要任務有①既要負責整個集群的資源調度,在每一個集群中還要執行多個mr任務;②還要負責每個任務啟動以及進度跟蹤,mapreduce任務,跟蹤maptask和reducetask的進度。

tasktracker:計算的從節點,提供資源,負責計算。將整個節點的資源分為2部分mapslot和reduceslot,當只有 maptask?時,reduceslot 不能用;當只有 reducetask?時,maptask 不能用,資源極大的浪費。

缺陷總結:

①單點故障,可靠性低

②擴展性差

③資源利用率低

④資源調度只能為MapReduce服務,計算框架的資源調度使用受限

因為hadoop1.x的以上缺陷,hadoop2.x引入了yarn,yarn的最基本的想法是將資源調度和進度跟蹤分開,hadoop2.x中mapreduce負責編程套路(邏輯),yarn 負責資源調度。

?

2 YARN的架構

(1)ResourceManager:主節點,負責接收客戶端的請求,提供資源調度,負責整個集群的資源調度。它主要由兩個組件構成:ASM(ApplicationsManager,應用程序管理器)和Scheduler(調度器)。

應用程序管理器(ASM):負責所有任務的管理,每一個任務的啟動銷毀,每一個任務的進度跟蹤,管理每一個應用程序的MRAppMaster(即負責每一個MRAppMaster 啟動和銷毀,跟蹤MRAppMaster 運行狀態,失敗嘗試重啟)。

MRAppMaster(MapReduce Application Master):MapReduce 中,每一個應用程序運行的時候,先啟動MRAppMaster負責管理整個應用程序,它的主要工作有:①幫助當前應用程序申請資源;②啟動maptask和reducetask,③跟蹤maptask任務和reducetask任務的運行狀態和進度;④進行maptask和reducetask 資源的回收。

?

調度器(Scheduler):決定的任務的執行順序

Yarn中的三種調度器如下:

①FIFO(First In First Out):隊列調度器

內部維護的是單一的隊列,哪一個任務先提交,就先進行資源分配,任務運行。

缺點:如果前面有一個大任務 ?后面的任務阻塞。

②FAIR:公平調度器

只有這一個job在運行,此時它獲得了所有集群資源;當有多個任務時,所有任務平分資源。

缺點:沒有根據任務大小進行資源分配

③CAPACITY:容器調度器

也稱為計算能力調度器,可以根據任務,需要或公司每個組的真是需要,手動配置資源占比。如組1為測試組,占20% ,組2為生產占80%。每個組的內部維護了多個隊列,每一個隊列,都是FIFO 。

調度器總結:CAPACITY是apache版本默認使用的調度器,FAIR是CDH版本的hadoop默認使用的調度器,使用哪種調度器取決于yarn-site.xml當中的yarn.resourcemanager.scheduler.class 屬性。

(2)NodeManager:從節點,真正的資源提供者,為計算任務提供資源,需要資源的時候提供,運行完成時回收資源,動態提供資源是以container為單位提供,一個container對應一個maptask或一個reducetask。

container:抽象出來的邏輯資源容器 ,nodemanager提供資源的基本單位或最小單位 ? 內部封裝了一定的資源(cpu,內存,磁盤,網絡,io)。

?

3 資源調度過程

(1)客戶端提交任務(如hadoop jar...),客戶端先去ResourceManager申請資源;

(2)ResourceManager返回一個資源節點用于啟動當前應用程序(job)的MRAppMaster;

(3)ResourceManager到對應的節點上啟動MRAppMaster;

(4)MRAppMaster向ResourceManager申請資源(如maptask或reducetask);

(5)ResourceManager向MRAppMaster返回對應的資源節點;

(6)MRAppMaster到對應的資源節點上啟動一個container在其中運行maptask任務;

(7)maptask向MRAppMaster匯報自己的狀態和進度;

(8)當MRAppMaster獲取到有一個maptask運行完成之后,就啟動一個container在其中運行reducetask任務;

(9)reducetask啟動后,向MRAppMaster匯報自己的狀態的進度;

(10)每一個maptask和reducetask運行完成之后,MRAppMaster就會到對應的節點上進行資源回收;

(11)整個任務運行完成,MRAppMaster向ResourceManager匯報并注銷自己,并把整個運行結果返回給客戶端。

?

4 job提交流程

?

?

總結

以上是生活随笔為你收集整理的Hadoop学习之yarn的全部內容,希望文章能夠幫你解決所遇到的問題。

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