yarn簡述
yarn是一個資源調度平台,負責為運算程序提供服務器運算資源,相當於一個分布式操作系統平台,而mapreduce等運算程序則相當於運行與操作系統之上的應用程序。
ResourceManager:總的老大:處理客戶端請求,監控NodeManager,啟動或監控ApplicationMaster,資源的分配與調度
ApplicationMaster:單個job的老大:負責數據切分,為應用程序申請資源並分配內部的任務,任務的監控與容錯
NodeManager:單個節點的老大:管理單個節點的資源,處理來自ResourceManager、ApplicationMaster的命令
Container:資源抽象:如內存、cpu、磁盤、網絡等
作業提交運行情況:
1.client向yarn提交job,首先找ResourceManager分配資源,
2.ResourceManager開啟一個Container,在Container中運行一個Application manager
3.Application manager找一台nodemanager啟動Application master,計算任務所需的計算
4.Application master向Application manager(Yarn)申請運行任務所需的資源
5.Resource scheduler將資源封裝發給Application master
6.Application master將獲取到的資源分配給各個nodemanager
7.各個nodemanager得到任務和資源開始執行map task
8.map task執行結束后,開始執行reduce task
9.map task和 reduce task將執行結果反饋給Application master
10.Application master將任務執行的結果反饋Application manager