hadoop 中yarn 详解(yarn 架构&工作机制&作业提交全过程&yarn 的资源调度器)

yarn 是hadoop 2.x 中出现的组件,目的是把资源调度和程序解耦

yarn 是什么
yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce等运算程序则相当于运行于操作系统之上的应用程序。
mr 理解为程序
yarn 理解为程序运行的操作系统

yarn 的作用
负责为mr提供服务器运算资源

yarn 架构
yarn 主要包括 rm+nm+applicationMaster+container四大组件等
rm作用:
整个集群资源调度老大,负责客户端请求,监控nm,启动监控am 资源分配及调度
nm作用:
单个节点资源调度老大,处理rm的命令,处理来自am 的命令
am作用:
rm 理解为资源调度老大,am 可以理解为job 任务调度器老大,负责数据切分split 为应用程序申请资源 任务的监控容错
container作用:
类似虚拟机,封装了资源cpu core。。。

yarn 的工作机制(job 提交全流程)
0.客户端提交作业job.waitForCompletion()启动yarnRunner
1.yarnRunner 向rm 申请一个application
2.rm 返回一个资源提交路径&application_id
3.客户端提交job 所需要的资源(切片+配置信息+jar 包)
4.资源提交完毕,客户端申请运行mrAppMaster
5. 将用户请求初始化为task,放入队列
6. nn 从队列领取任务
7. 创建容器,启动mrappmaster,读切片信息知道启动多少MapTask
8. mrappmaster申请运行MapTask, rm 返回资源
9. mrappmaster 发送启动脚本
10.mapTask 读文件+map 方法处理+ 收集器收集 + 排序溢写+combine 五个阶段,mapTask 结束之后就是分区好排好序的文件
10. mapTask 结束之后,有mrappmaster 申请启动reduceTask
copy --> merge—>sort—>reduce 四个阶段
hadoop 中yarn 详解(yarn 架构&工作机制&作业提交全过程&yarn 的资源调度器)
hadoop 中资源调度器介绍
hadoop 中主要有三种资源调度器
fifo + 容量调度器+ 公平调度器
hadoop2.7.2默认调度器是容量调度器

容量调度器原理

hadoop 中yarn 详解(yarn 架构&工作机制&作业提交全过程&yarn 的资源调度器)
容量调度器可以多队列
每个队列都是FIFO