Spark内核架构解析

本文主要介绍了spark运行的大概流程。已经每个组件大概做了什么工作
在这里插入图片描述

1、Spark-submit提交的时候有多种方式,其实会通过反射的方式,创建和构造一个DriverActor进程出来
2、在构造SparkContext的时候,构造出DAGScheduler和TaskScheduler
3、DAGScheduler会将job划分为多个stage,然后每个stage创建一个Taskset
4、TaskScheduler通过后台进程去连接Master,并且向Master注册application
5、Master接收到Application注册的请求之后,会使用自己的资源调度算法,在Spark集群的worker上为这个application启动多个Executor
6、Master通知work启动Executor
7、Executor启动之后会自己反向注册到TaskScheduler上去
8、work会为application启动Executor
9、TaskScheduler会把Taskset里每一个task提交到executor上执行
10、Executor每接收到一个task,都会用TaskRunner来封装task,然后从线程池里取出一个线程,执行这个task
11、TaskRunner将我们编写的代码,也就是要执行的算子以及函数,拷贝,反序列化,然后执行
12、Task有2种,shuffleMapTask和ResultTask,只有最后一个Stage是ResultTask,之前的stage都是ShuffleMapTask
13、最后整个spark应用程序就是stage分批次作为taskset提交到executor执行,每个task针对RDD的一个partition,执行我们定义的算子和函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值