一、YARN概述
yarn是一个资源调度平台负责为运算程序提供服务器运算资源,相当于一个分布式操作系统平台,mr等程序在上面运行。
二、yarn基本架构
resoucemanage、nodemanage、applicationmaster、container等
三、yarn任务提交流程
- mr程序把任务提交到客户端所在节点
- 客户端提交给resourcemanage申请一个application
- rm返回application路径和资源id,客户端上传文件(xml,切片,jar)到application路径上,
- 提交完成后向rm申请applicationmaster(am),
- rm将用户请求初始化一个task进入自己的任务调度队列,
- 发送task任务到nm
- nm创建container,运行applicationmaster
- am从路径上下载文件
- am向rm申请运行maptask容器
- rm向nm分配maptask,nodemanage收到maptask创建container运行maptask
- am向其他task发送启动命令
- am等待所有maptask执行完成后再向rm申请运行reducetask容器
- rm向nm分配reducetask,nodemanage收到reducetask创建container运行reducetask
- reducetask向maptask拉取相应分区数据
- 程序运行完后am会向rm注销自己
四、yarn调度器
1公平调度器(多队列,同一时间队列可以运行多个任务
2容量调度器(多队列,同一时间队列只能运行一个任务
3FIFO调度器(单队列基本没人用)