A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

前言

本系列的目的在于试图剖析spark任务提交至hadoop yarn上的整个过程,从yarn的启动,以及spark-submit提交任务到yarn上,和在yarn中启动任务包括yarn组件之间的通信,用以提升自身知识储备,记录学习的过程为目的,由于个人能力有限文章中或许有理解不到位的地方,敬请谅解。本系列侧重的部分是yarn相关的部分,所以在spark-submit代码剖析阶段会缺少与spark相关的部分。分析的源码基于spark_2.11版本以及Hadoop-2.7.4版本。


流程图

为了更好的理解yarn的资源调度,本篇文章将介绍spark任务提交到yarn上直至启动的流程分析,在本系列的后面几篇文章都会围绕以下这个流程图来做分析

1. spark-submit提交任务时在spark端就会封装好资源请求,以及AM启动的上下文,spark任务的AM是spark自己封装的AM,其实各个计算引擎如果要在Yarn上提交任务,都会选择在自己封装一个新的AM来进行管理应用程序。


2. 将任务提交到RM上,RM就收请求任务的请求就会准备启动AM


3. 启动AM,启动AM的过程非常的复杂,本系列文章为专门拿一章出来专门讲解。


4. AM向RM注册自己。


5. AM成功注册到RM上后,就会发送资源请求给ApplicationMasterService(RM的子服务,之前也说过RM是由众多子服务租车的一个服务,所以这里其实就是发给RM)


6. RM接受到请求后就去各个NM上请求Container


7. NM检查自身节点后就会生成合适的Container返回给RM


8. AM会拿到NM返回给RM的Container,拿到之后会告知RM我要启动这些Container


9. RM发送请求给NM去启动Container


10. 最终启动在匹配的节点启动Container



小结:

本文主要是针对后面对Yarn的研究做一个方向上的敲定,粗浅的介绍了spark任务是经过了怎么样的调度最终在Yarn上启动的。

最后感谢在阅读Yarn源码中网上许多博客大牛给予的文章指导,在后文的分析中难免会借鉴到各位博主的一些想法和观念,若有冒犯,请告知我删除相关的内容。


1 个回复

倒序浏览
奈斯
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马