天天看點

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

本節書摘來華章計算機《hadoop與大資料挖掘》一書中的第2章 ,第2.1.4節,張良均 樊 哲 位文超 劉名軍 許國傑 周 龍 焦正升 著 更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

在上一節中我們看到,當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(節點管理器)。各個元件描述如下。

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

(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來執行任務。

繼續閱讀