## YARN
![](https://img.kancloud.cn/ea/3a/ea3ac7598e0552c39d7fd068ef7bea4c_926x399.png)
## YARN集群
* Client、ResourceManager、NodeManager、ApplicationMaster
* master/slave: RM/NM
![](https://img.kancloud.cn/ec/be/ecbef92d80b4077c551905dcd2c9dd85_809x628.png)
### 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