网站备案系统,做速卖通要关注的几个网站,网站风格的设计,wordpress检查后门文章目录 #xff08;126#xff09;基础架构#xff08;127#xff09;YARN的工作机制#xff08;128#xff09;作业全流程参考文献 #xff08;126#xff09;基础架构
之前基本介绍完了Hadoop的几个核心组件#xff0c;接下来可以思考下#xff0c;在MR程序运行… 文章目录 126基础架构127YARN的工作机制128作业全流程参考文献 126基础架构
之前基本介绍完了Hadoop的几个核心组件接下来可以思考下在MR程序运行过程中整个集群的资源是如何管理的以及每个任务该分配多少资源才合适
这就是YARN需要考虑的问题。
YARN是一个资源调度平台负责为各个任务提供运行资源。可以简单理解成YARN是windows系统而MR等程序就是运行在这个操作系统之上的应用进程。
YARN中的组件包括ResourceManager、NodeManager、Container、ApplicationMaster等。
关于YARN的运行流程我们之前在概念一节里也有简单介绍了。
如图 ResourceManager整个YARN中最重要的组件老大哥领导角色基本每个组件都会跟它做交互负责
接收、处理客户端传过来的请求提交的作业监控NodeManager启动、监控ApplicationMaster如果任务挂了会协调切换到其他节点继续执行资源的分配与调度。
按我的理解RM更多的是做的是整个集群的资源管理一般不会实际落地去分配资源具体的落地工作都是由对应的NodeManager来实现的。
NodeManager单个节点一般是指单台服务器上的老大负责
管理自己节点上的资源处理来自ResourceManage的命令比如说RM告诉NM需要从你的节点上运行个任务那么NM就需要实际分配资源来做配合处理来自ApplicationMaster的命令如App Mstr要求申请资源。
ApplicationMaster是单个job的老大负责
为应用申请资源向RM提申请并分配给内部的任务对内部的任务进行监控和容错。
Container是YARN中对资源的一个抽象概念它封装了某个节点上的多维度资源如内存、CPU、磁盘和网络。如果要类比的话相当于是每个节点上的一台台虚拟机
127YARN的工作机制
即YARN在底层是怎么运行的是面试中经常会被问到的一类面试题。
图形化展示下步骤 Mr程序首先被提交到客户端所在的节点客户端会启动一个YarnRunner来做对内外的交互 YarnRunner会向ResourceManager发出请求申请一个Application来执行自己的job 接着RM确认可以创建Application之后会把这个Application的id和资源提交路径等返回给客户端告知其可以将资源提交至这个路径 客户端的YarnRunner在接收到反馈后就开始提交job运行所需的资源到指定路径重点提交三个文件 job.split即数据的切片文件关系到后续的切片流程以及MapTask数量job.xml即任务执行的参数配置等xx.jar即任务本身的程序代码 这些都会在job.submit()之后生成 资源提交完毕后客户端向RM提出申请申请运行对应的ApplicationMaster RM接收到申请然后将申请初始化成一个Task放进自己的调度队列里如FIFO调度队列 当一个Task可以被调度时即资源允许RM会根据情况选择一个NodeManager将Task分配给它 NM收到任务会在自己内部创建一个Container分配好资源来执行这个Task。接着Container内部会再启动一个MrAppMaster来管理整个任务或者说整个job的运行。 MrAppMaster会去当前job的资源路径去读取切片信息即job.split下载到节点本地 拿到切片后MrAppMaster会再向RM申请申请资源来运行MapTask。RM会将申请先放进队列等调度到的时候就会去挑选并通知对应的NodeManager们准备分配资源来做MapTask 对应的NodeManager接收到通知然后在自己内部创建好对应的Container MrAppMaster直接发送程序的启动脚本给刚创建好的Container们让它们启动MapTask开始正式运行代码这个过程里每个MapTask会生成一个YarnChild负责对外的交流待MapTask执行完数据会按照分区持久化到磁盘 待MapTask执行完后MrAppMaster会再向RM申请几个Container来运行ReduceTask。流程跟刚才介绍的MapTask启动基本一致开启Container、启动ReduceTask、启动YarnChild等 ReduceTask启动后会向MapTask里去获取对应分区的数据 ReduceTask执行完后标志着整个MR基本运行完成MrAppMaster会向RM提出申请任务完成请求注销掉自己并回收资源等 RM接收申请并开始收尾工作。
128作业全流程
主要讲解下HDFS、YARN、MapReduce三者的关系。
HDFS里有DataNode、NameNode和SecondaryNameNode其中DataNode用来存储NameNode则是用来管理DataNode的比如说记录DataNode的一些元数据等。至于SecondNameNode是辅助NameNode工作的。
然后YARN的话是有一个ResourceManage负责管理全局的资源一至多个NodeManager用来管理单节点的资源。
教程里没有详细展开说我只做个简单总结吧。
还是以上一节YARN的工作流程为例那里清晰展示了YARN跟MapReduce的交互至于HDFS在哪儿起作用其实也好理解HDFS就可以简单理解成磁盘。
比如说第3步里client需要提交资源至指定的路径其实就是提交到HDFS的路径下。另外每个MapTask启动之后要去资源路径拿数据其实也是跟HDFS的DataNode交互的过程。
参考文献
【尚硅谷大数据Hadoop教程hadoop3.x搭建到集群调优百万播放】