Spark运行原理源码版

Posted tkzm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spark运行原理源码版相关的知识,希望对你有一定的参考价值。

1、首先我们编写完类打成jar包提交到集群上,然后用spark-submit提交任务。提交任务可以分为集群和本地模式(集群:spark-submit --master spark://master:7077 --class 全类名 jar包路径 需要的参数)(本地:spark-submit --class 全类名 jar包路径 需要的参数)
2、spark-submit脚本会自己去调用SparkSubmit类,appArgs.action根据模式匹配判断是哪种方式提交的然后去执行对应的代码。
3、通过调用runmain方法去反射拿到我们要执行的类和方法去执行
4、首先SparkContext会去创建DAGScheduler和TaskScheduler
5、Transformation是懒执行的当我们的程序碰到Action算子的时候才会去saveAsHadoopDataset中调用runjob方法利用submitJob去DAGSchedulerEventProcessLoop线程池中提交job这时开始构造Stage,先拿到最后一个RDD(finalRdd),创建ResultStage(只存在一个),之后的Stage会根据宽窄依赖去切分Stage(都叫做ShuffleMapStage),Stage的切分是从后往前的,但是提交是从前往后的。
6、一个Stage中都是窄依赖,可以并行的去计算。根据你的分区数量开始划分任务。把相同处理逻辑但是数据不同的Task封装成一个TaskSet调用makeOffers去启动Task,交给TaskScheduler
7、客户端的Driver向Master注册
8、Master会根据自己的资源调度算法去让Worker启动一个或者多个Exeuctor。Worker创建一个ExecutorRunner线程,ExecutorRunner会启动ExecutorBackend进程
9、ExecutorBackend启动后会向Driver的SchedulerBackend注册,每个Stage包含的Task通过TaskScheduler分配给Executor执行
10、所有stage都完成后作业结束。

以上是关于Spark运行原理源码版的主要内容,如果未能解决你的问题,请参考以下文章

Spark内核源码解析十四:checkpoint原理剖析

Checkpoint的运行原理和源码实现

CacheManager彻底解密:CacheManager运行原理流程图和源码详解(DT大数据梦工厂)

[Spark內核] 第42课:Spark Broadcast内幕解密:Broadcast运行机制彻底解密Broadcast源码解析Broadcast最佳实践

6.Spark streaming技术内幕 : Job动态生成原理与源码解析

Checkpoint彻底解密:Checkpoint的运行原理和源码实现彻底详解(DT大数据梦工厂)