【大数据之Hadoop】二十、Yarn基础框架及工作机制

1、Yarn基础框架

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

YARN主要由ResourceManager、NodeManager、ApplicationMaster和Container等组件构成。
在这里插入图片描述
(1)ResourceManager(RM)
整个集群资源的管理者,进行资源的分配和调度;处理客户端请求;监控NodeManager的运行情况;启动和监控ApplicationMaster。

(2)NodeManager(NM)
对单节点即单台服务器进行资源管理和调度;处理ResourceManager的命令;处理ApplicationMaster的命令(因为任务提交到AM会由NM向RM申请资源,申请之后在NM上运行)。

(3)ApplicationMaster(AM)
为作业向RM申请资源,由RM根据资源情况再分配;任务的监控和容错(当节点挂了之后可以向RM再申请容器,在容器里运行MapTask)。

(4)Container(容器):相当于容器,封装了资源(内存、CPU、磁盘等)。

2、Yarn工作机制

在这里插入图片描述
(0)MR程序提交到客户端所在的节点,在集群模式中运行MR程序,当运行到主函数的waitForCompletion()函数时创建YarnRunner(本地模式是LocalRunner)。

(1)YarnRunner向ResourceManager申请一个Application运行任务。

(2)RM将该应用程序的资源路径返回给YarnRunner,让YarnRunner把提交的job放到集群路径上。

(3)该程序将运行所需资源提交到HDFS集群路径上,包括split切片信息(控制开启MapTask的数量)、配置参数文件xml(控制任务按照xml里的参数运行)以及jar包(程序代码)。

(4)程序资源提交完毕后,YarnRunner申请运行MrAppMaster。

(5)RM将用户的请求初始化成一个Task任务,然后放到任务队列中排队(任务队列默认是容器)。

(6)空闲NodeManager领取Task任务。

(7)该NodeManager创建容器Container(任务的执行只能发生在容器中,容器中封装了资源),并在容器中启动MRAppmaster进程。

(8)Container从HDFS集群路径上拷贝资源(即切片信息等)到本地。

(9)容器拿到切片信息后,由MRAppmaster向RM 再次申请运行MapTask(切片个数=MapTask个数,有多少切片就申请开启多少MapTask)。

(10)RM将运行MapTask任务分配给NodeManager,NodeManager领取任务并创建容器(MapTask对应的容器有可能在同一个NodeManager节点上),并拷贝cpu、ram和jar包资源。

(11)MRAppMaster向接收到任务的NodeManager发送程序启动命令,NodeManager分别启动MapTask,然后开启YarnChild进程。MapTask运行结束后对数据进行分区排序并持久化到磁盘等待ReduceTask拉取。

(12)MrAppMaster等待所有MapTask运行完毕后,向RM再次申请容器运行ReduceTask程序(有多少分区就开启多少ReduceTask)。开启任务之前依旧是先开对应的容器,在容器里启动ReduceTask,ReduceTask对应的进程是YarnChild。

(13)ReduceTask向MapTask获取相应分区的数据。

(14)ReduceTask程序运行完毕后,MrAppMaster会向RM申请注销自己,释放容器等资源。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值