一、YARN是什麼
- YARN是Hadoop的核心組件之一
- 主要負責資源的管理(將系統資源分配給集羣中運行的各種運行程序)和作業的調度(調度在不同的節點上執行的任務)
- YARN的基本思想是將資源管理和作業調度分解爲單獨的daemon
- Yarn的設計目標就是允許我們的各種應用以共享、安全、多租戶的形式使用整個集羣
二、YARN的架構
- YARN總體上是主/從結構,RM爲master,NM爲slave
- 主要包括RM,NM,AM,Container等幾個組件
- RM:是master上一個獨立運行的進程,負責集羣統一的資源管理、調度、分配。
- NM:是slave上一個獨立運行的進程,負責上報節點的狀態。
- AM:Application的負責人,負責Application的運行,以及資源的申請。
- Container:分配資源的單位,包括內存、CPU等
三、YARN應用提交過程
- Client將應用提交給RM
- RM爲應用程序申請資源,並與某個NM進行通信啓動第一個Container,以啓動AM
- AM向RM註冊,並且爲應用程序申請資源,與NM通信,以啓動相應的Container來運行Task
- Task向AM彙報Task運行的狀態,client通過與AM交流獲得應用的運行狀態
- 一但應用運行完成,AM向RM註銷,釋放資源,整個應用程序結束。