hadoop2.0中yarn的運行原理
我們知道在離線大數據處理領域中,hadoop是目前無可厚非的處理架構,到目前為止hadoop已經有三個大版本,每個版本下都有架構方面的調整。
在hadoop1.0中有一些弊端,比如hdfs元數據信息保存的單節點故障,並且任務計算框架只能使用mapreduce,而且造成了任務管理器的壓力過大,因此在hadoop2.0中加入了yarn資源統一管理的機制,不僅解決了元數據單節點故障問題(雙namenode)而且實現了元數據的實時熱備(共享機制JournalNode),在hdfs和mr之間加入了yarn,統一協調資源。
在本文中只介紹yarn的運行原理,其他有關知識可以查詢相關文檔,這裏就不多做介紹。
Yarn的運行原理圖(此處為截圖)
原理介紹
1. 客戶端執行run方法,啟動任務,啟動過程中會檢測相應執行權限請求路徑等,若檢測失敗,則終止後續的執行
2. 第一步檢測通過後,向resourcemanager發送請求,並返回任務id,以及任務在hdfs的存放路勁
3. 客戶端接收到響應信息後,根據提交路徑,將job任務打包上傳到hdfs(共享文件系統)
4. 客戶端再次向resourcemanager提交job任務(application)
5. Resourcemanager根據任務提交由資源調度器申請一個資源容器container,並由
6. Appalicationmaster進行任務的初始化
7. 從resourcemanager獲取執行任務在hdfs的位置,並根據任務信息計算mapreduce的數量
8. 根據初始化和運算結果,Appalicationmaster再根據mapreduce的任務大小依次到resourcemanager申請task(mapreduce)任務需要的container
9. Applicationmaster申請到container後再次選擇一個nodemanager,並發送啟動container的指令
10. Nodemanager收到指令後,啟動container並從任務所在的hdfs路勁中獲取執行的mapreduce任務
11. 啟動jvm虛擬機來執行獲取的mapreduce任務
註意:applicationmaster將監聽每一個nodemanager執行的情況並隨時匯報給resourcemanager,知道最後任務執行完成,將回收所有的資源,如果發現有任務執行失敗,則由applicationmaster來協調,減輕了resourcemanager的負擔,如果applicationmaster在運行過程中出問題,resourcemanager沒有接收心跳後,會再在所有nodemanager節點中選擇一個節點來啟動applicationmaster來繼續工作。
以上就是hadoop2.0中yarn的運行原理,大家相互學習-------成長從博客開始
hadoop2.0中yarn的運行原理