您好,登錄后才能下訂單哦!
我們知道在離線大數(shù)據(jù)處理領(lǐng)域中,hadoop是目前無可厚非的處理架構(gòu),到目前為止hadoop已經(jīng)有三個大版本,每個版本下都有架構(gòu)方面的調(diào)整。
在hadoop1.0中有一些弊端,比如hdfs元數(shù)據(jù)信息保存的單節(jié)點故障,并且任務(wù)計算框架只能使用mapreduce,而且造成了任務(wù)管理器的壓力過大,因此在hadoop2.0中加入了yarn資源統(tǒng)一管理的機制,不僅解決了元數(shù)據(jù)單節(jié)點故障問題(雙namenode)而且實現(xiàn)了元數(shù)據(jù)的實時熱備(共享機制JournalNode),在hdfs和mr之間加入了yarn,統(tǒng)一協(xié)調(diào)資源。
在本文中只介紹yarn的運行原理,其他有關(guān)知識可以查詢相關(guān)文檔,這里就不多做介紹。
1. 客戶端執(zhí)行run方法,啟動任務(wù),啟動過程中會檢測相應(yīng)執(zhí)行權(quán)限請求路徑等,若檢測失敗,則終止后續(xù)的執(zhí)行
2. 第一步檢測通過后,向resourcemanager發(fā)送請求,并返回任務(wù)id,以及任務(wù)在hdfs的存放路勁
3. 客戶端接收到響應(yīng)信息后,根據(jù)提交路徑,將job任務(wù)打包上傳到hdfs(共享文件系統(tǒng))
4. 客戶端再次向resourcemanager提交job任務(wù)(application)
5. Resourcemanager根據(jù)任務(wù)提交由資源調(diào)度器申請一個資源容器container,并由applicationmanager選擇一臺nodemanager(節(jié)點的資源管理器),啟動一個與申請大小相同的container,并開啟一個applicationmaster(任務(wù)的子實例協(xié)調(diào)管理者)
6. Appalicationmaster進(jìn)行任務(wù)的初始化
7. 從resourcemanager獲取執(zhí)行任務(wù)在hdfs的位置,并根據(jù)任務(wù)信息計算mapreduce的數(shù)量
8. 根據(jù)初始化和運算結(jié)果,Appalicationmaster再根據(jù)mapreduce的任務(wù)大小依次到resourcemanager申請task(mapreduce)任務(wù)需要的container
9. Applicationmaster申請到container后再次選擇一個nodemanager,并發(fā)送啟動container的指令
10. Nodemanager收到指令后,啟動container并從任務(wù)所在的hdfs路勁中獲取執(zhí)行的mapreduce任務(wù)
11. 啟動jvm虛擬機來執(zhí)行獲取的mapreduce任務(wù)
注意:applicationmaster將監(jiān)聽每一個nodemanager執(zhí)行的情況并隨時匯報給resourcemanager,知道最后任務(wù)執(zhí)行完成,將回收所有的資源,如果發(fā)現(xiàn)有任務(wù)執(zhí)行失敗,則由applicationmaster來協(xié)調(diào),減輕了resourcemanager的負(fù)擔(dān),如果applicationmaster在運行過程中出問題,resourcemanager沒有接收心跳后,會再在所有nodemanager節(jié)點中選擇一個節(jié)點來啟動applicationmaster來繼續(xù)工作。
以上就是hadoop2.0中yarn的運行原理,大家相互學(xué)習(xí)-------成長從博客開始
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。