这里写自定义目录标题
- Yarn概述
- Yarn组成
- Yarn工作机制
- 调度器
Yarn概述
- Yarn ,负责hadoop中的资源调度,相当于一个分布式的操作系统,mapreduce等程序运行于yarn上
Yarn组成
- 1.RM(Resource Manager)
处理客户端请求
监控各个node manager的资源
开启AM
分配和调度资源
注:RM只负责资源的管理和发放,不负责程序的运行 - 2. NM(Node Manager)
管理单个服务器上的资源并向RM汇报 - 3. AM(APP Master)
有任务时才开启,任务结束后关闭
负责整个应用程序的运行(资源申请及任务分配) - 4. Container
资源容器,RM以container形式发放资源(封装了内存、CPU等资源)
只有在运行程序时存在
Yarn工作机制
- –1. 客户端提交job时首先连接集群,同时会创建Yarn Runner
- –2. Yarn Runner会向RM申请一个Application
- –3. RM收到请求后返回资源提交路径stag和JobId
- –4.Yarn Runner将运行Job所需的资源提交到stag和JobId拼接后的路径下
提交资源包括(程序jar包,切片信息,配置文件) - –5. 提交之后,Yarn Runner向RM申请运行APP Master
- –6. RM收到请求后先放到调度队列中,当于空余资源时,将该任务派发给其中某个有资源的NM
- –7. NM收到任务后就会创建一个Container用来运行APP Master
- –8. APPMaster运行起来后先将job运行所需的资源从hdfs下载到本地
- –9. 然后根据切片信息向RM申请运行相应的Map Task的资源
- –10. RM收到请求后先放到调度队列中,当于空余资源时,将该任务派发给下面的NM
- –11. NM收到任务后,创建相应个数的Container来运行Map Task(每当一个MapTask运行完,所在的container资源立马被释放)
- –12. 当所有Map Task运行完成之后,APP Master向RM申请运行相应Reduce Task的资源
- –13. Reduce Task从Map Task获取相应的分区数据进行处理,完成之后释放资源
- –14. 当所有的Reduce Task运行完之后APP Master会向RM注销自己
- –15. 最后客户端会将hdfs资源提交路径下的数据删除
调度器
分类
先进先出(FIFO)、容量调度器、公平调度器
–注:默认的是容量调度器
FIFO
–按照提交顺序依次调度运行
容量调度器
可以理解为多个FIFO队列,每个队列设定一定的资源占比和使用上限
公平调度器
也是多队列,但是每个队列中的任务平分资源,并发执行,每个任务都可设最小资源值