一、YARN的定义
Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而Mapreduce等运算程序则相当于运行于操作系统之上的应用程序。Yarn包括ResourceManager、NodeManager、ApplicationMaster和Container等组件构成。
二、YRAN的工作机制
- 客户端提交任务到集群,resousermananger返回确认
- 提交相关的jar、配置文件、切片信息
- 将用户请求封装为一个任务,resousermanager将任务放到任务队列里等待任务执行
- NodeManager领取到任务,创建containe容器,下载jar包,运行MRAppMaster,并向RM申请运行mapTask的
- Nodemanager领取到maptask任务,运行container,运行map任务,运行完成后向MRAppMaster汇报
- MRAppMaser收到mapTask运行完成,向Resourcemamanger申请运行reducetask
- NodeManager领取到reduce任务,获取map的运行结果,在本地运行container执行reduce任务
- 当整个任务运行完MRAppMaster向RM注销自己
三、资源调度器
1、FIFO调度器:只有一个队列,先进来的先运行
2、容量调度器:多个队列,先进来的任务优先享有资源,各个队列之间可以相互借用资源
3、公平调度器:多对列,每个任务平均享有资源,并发度最高,不同队列资源也可以借调