Spark深入解读(二)---- 工作流程

Spark工作流程
1.使用Spark-submit提交代码至服务器上

2.创建SparkContext,在SparkContext初始化的时候会创建DAGScheduler和TaskScheduler

3.TaskScheduler会启动一个后台进程去集群Master注册Application,申请任务资源,比如CPU,内存等等

4.Master接收注册请求后会利用自己的资源调度算法,在Spark集群的worker上,为Application启动多个Executor

5.worker会启动Executor,Executor会反向注册到Driver上,Driver结束SparkContext初始化,继续执行代码

6.每次执行到一个action算子,就会创建一个job,同时job会被提交到DAGScheduler

7.DAGScheduler会使用划分算法,将job划分成多个stage,然后每个stage都会创建一个TaskSet,划分stage依据是分区间有无数据交互,也就是Shuffle过程

8.TaskScheduler会把TaskSet中的task通过task分配算法提交到Executor上运行,遵循"计算向数据靠拢",TaskScheduler会根据节点上的数据,将对于的任务丢到该节点上。

9.Executor会创建线程池执行task,每个都会task被封装成TaskRunner.

10.Task有两种,ShuffleMapTask和ResultTask,只有最后一个stage使用resultTask,也就是触发action才会返回结果

11.Spark应用的执行就是stage分批次提交TaskSet到Executor,每个Task针对RDD的一个partition,执行定义的算子,直到所有问题完成

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值