閱讀507 返回首頁    go 汽車大全


《Hadoop與大數據挖掘》一2.1.4 Hadoop資源管理—YARN

本節書摘來華章計算機《Hadoop與大數據挖掘》一書中的第2章 ,第2.1.4節,張良均 樊 哲 位文超 劉名軍 許國傑 周 龍 焦正升 著 更多章節內容可以訪問雲棲社區“華章計算機”公眾號查看。

2.1.4 Hadoop資源管理—YARN

在上一節中我們看到,當MapReduce發展到2.x時就不使用JobTracker來作為自己的資源管理框架,而選擇使用YARN。這裏需要說明的是,如果使用JobTracker來作為Hadoop集群的資源管理框架的話,那麼除了MapReduce任務以外,不能夠運行其他任務。也就是說,如果我們集群的MapReduce任務並沒有那麼飽滿的話,集群資源等於是白白浪費的。所以提出了另外的一個資源管理架構YARN(Yet Another Resource Manager)。這裏需要注意,YARN不是JobTracker的簡單升級,而是“大換血”。同時Hadoop 2.X也包含了此架構。Apache Hadoop 2.X項目包含以下模塊。

  • Hadoop Common:為Hadoop其他模塊提供支持的基礎模塊。
  • HDFS: Hadoop:分布式文件係統。
  • YARN:任務分配和集群資源管理框架。

MapReduce:並行和可擴展的用於處理大數據的模式。
如圖2-10所示,YARN資源管理框架包括ResourceManager(資源管理器)、Applica-tionMaster、NodeManager(節點管理器)。各個組件描述如下。

image


(1)ResourceManager
ResourceManager是一個全局的資源管理器,負責整個係統的資源管理和分配。它主要由兩個組件構成:調度器(Scheduler)和應用程序管理器(ApplicationManager,AM)。
Scheduler負責分配最少但滿足Application運行所需的資源量給Application。Scheduler隻是基於資源的使用情況進行調度,並不負責監視/跟蹤Application的狀態,當然也不會處理失敗的Task。
ApplicationManager負責處理客戶端提交的Job以及協商第一個Container以供App-licationMaster運行,並且在ApplicationMaster失敗的時候會重新啟動ApplicationMaster(YARN中使用Resource Container概念來管理集群的資源,Resource Container是資源的抽象,每個Container包括一定的內存、IO、網絡等資源)。
(2)ApplicationMaster
ApplicatonMaster是一個框架特殊的庫,每個Application有一個ApplicationMaster,主要管理和監控部署在YARN集群上的各種應用。
(3)NodeManager
主要負責啟動Resourcemanager分配給ApplicationMaster的Container,並且會監視Container的運行情況。在啟動Container的時候,NodeManager會設置一些必要的環境變量以及相關文件;當所有準備工作做好後,才會啟動該Container。啟動後,NodeManager會周期性地監視該Container運行占用的資源情況,若是超過了該Container所聲明的資源量,則會kill掉該Container所代表的進程。
如圖2-11所示,該集群上有兩個任務(對應Node2、Node6上麵的AM),並且Node2上麵的任務運行有4個Container來執行任務;而Node6上麵的任務則有2個Container來執行任務。

最後更新:2017-06-26 09:31:54

  上一篇:go  《Hadoop與大數據挖掘》一2.1.5 Hadoop生態係統
  下一篇:go  《Hadoop與大數據挖掘》一2.1.3 Hadoop計算—MapReduce