1. 程式人生 > >hadoop2.0中yarn的運行原理

hadoop2.0中yarn的運行原理

tex term 2.0 img node water mapr res 數據處理

Yarn的簡單介紹

我們知道在離線大數據處理領域中,hadoop是目前無可厚非的處理架構,到目前為止hadoop已經有三個大版本,每個版本下都有架構方面的調整。

hadoop1.0中有一些弊端,比如hdfs元數據信息保存的單節點故障,並且任務計算框架只能使用mapreduce,而且造成了任務管理器的壓力過大,因此在hadoop2.0中加入了yarn資源統一管理的機制,不僅解決了元數據單節點故障問題(雙namenode)而且實現了元數據的實時熱備(共享機制JournalNode),在hdfsmr之間加入了yarn,統一協調資源。

在本文中只介紹yarn的運行原理,其他有關知識可以查詢相關文檔,這裏就不多做介紹。

Yarn的運行原理圖(此處為截圖)

技術分享圖片

原理介紹

1. 客戶端執行run方法,啟動任務,啟動過程中會檢測相應執行權限請求路徑等,若檢測失敗,則終止後續的執行

2. 第一步檢測通過後,向resourcemanager發送請求,並返回任務id,以及任務在hdfs的存放路勁

3. 客戶端接收到響應信息後,根據提交路徑,將job任務打包上傳到hdfs(共享文件系統)

4. 客戶端再次向resourcemanager提交job任務(application

5. Resourcemanager根據任務提交由資源調度器申請一個資源容器container,並由

applicationmanager選擇一臺nodemanager(節點的資源管理器),啟動一個與申請大小相同的container,並開啟一個applicationmaster(任務的子實例協調管理者)

6. Appalicationmaster進行任務的初始化

7. resourcemanager獲取執行任務在hdfs的位置,並根據任務信息計算mapreduce的數量

8. 根據初始化和運算結果,Appalicationmaster再根據mapreduce的任務大小依次到resourcemanager申請taskmapreduce)任務需要的container

9. Applicationmaster申請到container後再次選擇一個nodemanager,並發送啟動container的指令

10. Nodemanager收到指令後,啟動container並從任務所在的hdfs路勁中獲取執行的mapreduce任務

11. 啟動jvm虛擬機來執行獲取的mapreduce任務

註意:applicationmaster將監聽每一個nodemanager執行的情況並隨時匯報給resourcemanager,知道最後任務執行完成,將回收所有的資源,如果發現有任務執行失敗,則由applicationmaster來協調,減輕了resourcemanager的負擔,如果applicationmaster在運行過程中出問題,resourcemanager沒有接收心跳後,會再在所有nodemanager節點中選擇一個節點來啟動applicationmaster來繼續工作。

以上就是hadoop2.0yarn的運行原理,大家相互學習-------成長從博客開始


hadoop2.0中yarn的運行原理