1. 程式人生 > >hadoop yarn的原理和工作流程

hadoop yarn的原理和工作流程

之前寫過 mapreduce的原理和工作流程,包括了一小部分yarn的內容,因為yarn本來就是從mrv1中提出來的,所以二者有千絲萬縷的聯絡,另外,作為一個新手也在梳理的階段,所以記錄的內容或多或少會有混亂或者不精準,還請大家包涵。結構如下:先簡要介紹一下mrv1中的資源管理,然後概述yarn。一,mrv1    這個階段資源管理和計算都是由mapreduce獨自完成。    執行階段包括:map  sort/shuffle/merge  以及reduce等幾個階段實現    mapreduce框架負責管理叢集資源,排程數以千計的作業以及其他的一些事情。    包括幾個元件:Job tracker   teskTracker管理相應節點的任務。tt與jt通訊,並被jt控制。jt負責工作伺服器節點的資源管理,跟蹤資源使用率/可用率,生命週期,排程作業的各個任務,跟蹤進度,以及為任務提供容災服務。tt根據JT的命令啟動清除任務,並且向JT提供任務的狀態資訊。、    但是:不能支援非MR應用的需求,可擴充套件性不高,資源使用率不高(map  reduce節點不能互換)相容等問題導致了YARN的出現二 YARN   YARN的主要想法:將JT的兩大主要職能,資源管理,作業的排程/監控分為兩個獨立的程序: Resource Manager;ApplicationMaster(和每個應用對應)    其中,RM和每個節點上的NodeManager組成了全新的通用作業系統,以分散式的方式管理應用程式。RM擁有所有應用的資源分配的決定權,對應於每個應用程式的ApplicatinMaster負責與RM協商資源,並和Nodemanager協同工作執行和監控各個任務。      RM有一個元件:scheduler(可插拔),負責為應用分配組員,純排程器,不負責監控和狀態跟蹤,也不保證對失敗的task重啟,使用了資源container的抽象概念,nodeManager負責啟動每個系欸但的對應於某個應用程式的Container,監控CPU,記憶體等資源使用情況,並報告給RM每個應用的AM負責與Scheduler協商合適額Container,跟蹤應用程式的狀態,監控他們的進度,             本質上:一個應用程式可以通過ApplicationMaster請求特定的資源來滿足它的資源需求,AM會和RM協商,由Scheduler分配一個Container來相應資源需求,AM必須取走container,並交給Nodemanager,NM會利用相應的資源來啟動Container的任務程序。    先寫到這