首页 > 其他 > 详细

spark内核源码解析一

时间:2020-05-09 17:34:57      阅读:47      评论:0      收藏:0      [点我收藏+]

1、Application,自己编写的spark程序。
2、spark-submit,利用shell来提交自己的spark程序
3、Driver,standalone提交方式,会通过反射构造出一个Driver进程。Driver进程会执行application程序。
4、SparkContext,Driver进程执行Application程序时会构造一个SparkContext。它会构造出DAGScheduler和TaskScheduler。构造TaskScheduler时,会去寻找集群的master,通过一个后台进程,然后向master注册Application。Master收到注册请求后会在spark集群上找worker,然后启动相应的Executor。
5、Master
6、Worker
7、Executor,进程。Executor通过上面的步骤启动后会反向注册到taskScheduler上去。所有Executor反向注册完成后,会结束SparkContext初始化,会继续执行Application代码。Executor每接收一个Task都会用TaskRunner封装,然后从线程池中找一个线程执行。TaskRunner就将我们写的代码,要执行的算子和函数拷贝,反序列化,然后执行Task。
8、Job,每执行一个action就会提交一个job提交给DAGScheduler。
9、DAGScheduler,DAGScheduler会将job划分为多个stage,然后为每一个stage创建一个taskset,stage划分算法很重要。TaskScheduler会把TaskSet里面的每一个Task提交到executor上面去执行,task分配算法。
10、TaskScheduler
11、ShuffleMapTask and ResultTask,Task有两种,只有最后一个stage的Task才是ResultTask,其余的都是ShuffleMapTask

最后spark应用的执行,就是stage分批次作为task提交到executor执行,每个task针对RDD的一个Partition,执行我们定义的算子和函数,依次类推直到结束。

技术分享图片

spark内核源码解析一

原文:https://www.cnblogs.com/xiaofeiyang/p/12858811.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!