YARN 作业提交全流程|学习笔记

开发者学堂课程【Hadoop 分布式资源管理框架 YARN:YARN 作业提交全流程】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/95/detail/1566


YARN 作业提交全流程


一、作业提交过程之 YARN

(1)作业提交

第1步:Client 调用 job.waitForCompletion 方法,向整个集群提交 MapReduce 作业。

第2步:Client 向 RM 申请一个作业 id。

第3步:RM 给 Client 返回该 job 资源的提交路径和作业 id。

第4步:Client 提交 jar 包、切片信息和配置文件到指定的资源提交路径。

第5步:Client 提交完资源后,向 RM 申请运行 MrAppMaster。

(2)作业初始化

第6步:当 RM 收到 Client 的请求后,将该job添加到容量调度器中。

第7步:某一个空闲的 NM 领取到该 Job。。

第8步:该 NM 创建 Container,并产生 MRAppmaster。

第9步:下载 Client 提交的资源到本地。。

(3)任务分配

第10步:MrAppMaster 向 RM 申请运行多个 MapTask 任务资源。

第11步:RM 将运行 MapTask 任务分配给另外两个 NodeManager, 另两个NodeManager 分别领取任务并创建容器。

(4)任务运行

第12步: MR 向两个接收到任务的 NodeManager 发送程序启动脚本,这两个NodeManager 分别启动 MapTask,MapTask 对数据分区排序。

第13步: MrAppMaster 等待所有 MapTask 运行完毕后,向 RM 申请容器,运行ReduceTask第14步:ReduceTask 向 MapTask 获取相应分区的数据。

第15步:程序运行完毕后,MR 会向 RM 申请注销自己。

(5)进度和状态更新

YARN中 的任务将其进度和状态(包括 counter)返回给应用管理器,客户端每秒(通过 mapreduce.client. progressmonitor.pllinterval 设置)向应用管理器请求进度更新,展示给用户。

(6)作业完成

除了向应用管理器请求作业进度外,客户端每 5 分钟都会通过调用waitForCompletion() 来检查作业是否完成。时间间隔可以通过mapreduce.client.completion.pollinterval 来设置。作业完成之后,应用管理器和Container 会清理工作状态。作业的信息会被作业历史服务器存储以备之后用户核查。

 

二、作业提交过程之 MapReduce

YARN 作业提交全流程|学习笔记

上一篇:django建立项目和应用


下一篇:加强互联网金融客户信息安全建设的对策研究