## YARN

## YARN集群
* Client、ResourceManager、NodeManager、ApplicationMaster
* master/slave: RM/NM

### Client: 向RM提交任務、殺死任務等
### ApplicationMaster:
* 每個應用程序對應一個AM
* AM向RM申請資源用于在NM上啟動對應的Task
* 數據切分
* 為每個task向RM申請資源(container)
* NodeManager通信
* 任務的監控
### NodeManager: 多個
* 干活
* 向RM發送心跳信息、任務的執行情況
* 接收來自RM的請求來啟動任務
* 處理來自AM的命令
### ResourceManager:集群中同一時刻對外提供服務的只有1個,負責資源相關
* 處理來自客戶端的請求:提交、殺死
* 啟動/監控AM
* 監控NM
* 資源相關
### container:任務的運行抽象
* memory、cpu....
* task是運行在container里面的
* 可以運行am、也可以運行map/reduce task