我們知道在離線大數(shù)據(jù)處理領(lǐng)域中,hadoop是目前無可厚非的處理架構(gòu),到目前為止hadoop已經(jīng)有三個(gè)大版本,每個(gè)版本下都有架構(gòu)方面的調(diào)整。
成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站制作、網(wǎng)站建設(shè)、朝陽網(wǎng)絡(luò)推廣、小程序制作、朝陽網(wǎng)絡(luò)營銷、朝陽企業(yè)策劃、朝陽品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供朝陽建站搭建服務(wù),24小時(shí)服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com
在hadoop1.0中有一些弊端,比如hdfs元數(shù)據(jù)信息保存的單節(jié)點(diǎn)故障,并且任務(wù)計(jì)算框架只能使用mapreduce,而且造成了任務(wù)管理器的壓力過大,因此在hadoop2.0中加入了yarn資源統(tǒng)一管理的機(jī)制,不僅解決了元數(shù)據(jù)單節(jié)點(diǎn)故障問題(雙namenode)而且實(shí)現(xiàn)了元數(shù)據(jù)的實(shí)時(shí)熱備(共享機(jī)制JournalNode),在hdfs和mr之間加入了yarn,統(tǒng)一協(xié)調(diào)資源。
在本文中只介紹yarn的運(yùn)行原理,其他有關(guān)知識(shí)可以查詢相關(guān)文檔,這里就不多做介紹。
1. 客戶端執(zhí)行run方法,啟動(dòng)任務(wù),啟動(dòng)過程中會(huì)檢測相應(yīng)執(zhí)行權(quán)限請(qǐng)求路徑等,若檢測失敗,則終止后續(xù)的執(zhí)行
2. 第一步檢測通過后,向resourcemanager發(fā)送請(qǐng)求,并返回任務(wù)id,以及任務(wù)在hdfs的存放路勁
3. 客戶端接收到響應(yīng)信息后,根據(jù)提交路徑,將job任務(wù)打包上傳到hdfs(共享文件系統(tǒng))
4. 客戶端再次向resourcemanager提交job任務(wù)(application)
5. Resourcemanager根據(jù)任務(wù)提交由資源調(diào)度器申請(qǐng)一個(gè)資源容器container,并由applicationmanager選擇一臺(tái)nodemanager(節(jié)點(diǎn)的資源管理器),啟動(dòng)一個(gè)與申請(qǐng)大小相同的container,并開啟一個(gè)applicationmaster(任務(wù)的子實(shí)例協(xié)調(diào)管理者)
6. Appalicationmaster進(jìn)行任務(wù)的初始化
7. 從resourcemanager獲取執(zhí)行任務(wù)在hdfs的位置,并根據(jù)任務(wù)信息計(jì)算mapreduce的數(shù)量
8. 根據(jù)初始化和運(yùn)算結(jié)果,Appalicationmaster再根據(jù)mapreduce的任務(wù)大小依次到resourcemanager申請(qǐng)task(mapreduce)任務(wù)需要的container
9. Applicationmaster申請(qǐng)到container后再次選擇一個(gè)nodemanager,并發(fā)送啟動(dòng)container的指令
10. Nodemanager收到指令后,啟動(dòng)container并從任務(wù)所在的hdfs路勁中獲取執(zhí)行的mapreduce任務(wù)
11. 啟動(dòng)jvm虛擬機(jī)來執(zhí)行獲取的mapreduce任務(wù)
注意:applicationmaster將監(jiān)聽每一個(gè)nodemanager執(zhí)行的情況并隨時(shí)匯報(bào)給resourcemanager,知道最后任務(wù)執(zhí)行完成,將回收所有的資源,如果發(fā)現(xiàn)有任務(wù)執(zhí)行失敗,則由applicationmaster來協(xié)調(diào),減輕了resourcemanager的負(fù)擔(dān),如果applicationmaster在運(yùn)行過程中出問題,resourcemanager沒有接收心跳后,會(huì)再在所有nodemanager節(jié)點(diǎn)中選擇一個(gè)節(jié)點(diǎn)來啟動(dòng)applicationmaster來繼續(xù)工作。
以上就是hadoop2.0中yarn的運(yùn)行原理,大家相互學(xué)習(xí)-------成長從博客開始