Yarn的工作机制/作业提交流程

勤奋不是嘴上说说而已,而是实际的行动,在勤奋的苦度中持之以恒,永不退却。业精于勤,荒于嬉;行成于思,毁于随。在人生的仕途上,我们毫不迟疑地选择勤奋,她是几乎于世界上一切成就的催产婆。只要我们拥着勤奋去思考,拥着勤奋的手去耕耘,用抱勤奋的心去对待工作,浪迹红尘而坚韧不拔,那么,我们的生命就会绽放火花,让人生的时光更加的闪亮而精彩。

导读:本篇文章讲解 Yarn的工作机制/作业提交流程,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

作业提交全过程详解
(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向两个接收到任务的NodeManaer发送程序启动脚本,这两个NodeManager分别启动MapTask, MapTask对数据分区排序。
第13步:MrAppMaster等待所有的MapTask运行完毕后,向RM申请容器,运行ReduceTask。
第14步:ReduceTask向MapTask获取相应分区的数据。
第15步:程序运行完毕后,MR会向RM申请注销自己。
(5)进度和状态更新
YARN中的任务将其进度和状态(包括counter)返回给应用管理器,客户端每秒(通过mapreduce.client.progressmonitor.pollinterval设置)向应用程序器请求进度更新,展示给用户。
(6)作业完成
除了向应用程序器请求作业进度外,客户端每5分钟都会通过调用waitForCompletion()来检查作业是否完成。时间间隔可以通过mapreduce.client.completion.pollinterval来设置。作业完成之后,应用程序管理器和Container会清理工作状态。作业的信息会被作业历史服务器存储以备之后用户核查。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/140811.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!