spark流程源码解析

本文详细解析了Spark任务提交到集群的过程,从客户端到Spark集群,不同Master URL会生成不同TaskScheduler来申请资源。TaskScheduler与底层通讯,Yarn模式下通过反射创建组件。接着,DAGScheduler切割Job并划分Stage。TaskScheduler向Master注册,Master通过调度算法寻找空闲Worker启动Executors。Executors启动后反向注册到TaskScheduler,TaskScheduler获取Executor资源。当遇到Action时,DAGScheduler将Job划分为Stage和Task,TaskSetManager负责管理Task并分发给Executor执行。
摘要由CSDN通过智能技术生成

 

 

 

左边绿色的是客户端,右边的是我们要提交到的spark集群

 

 

 

不同的Master url会生成不同的TaskScheduler,而TaskScheduler是真真正正的去申请资源的,因为是不同的集群模式,所以他申请资源的方式不一样,所以生成的TaskScheduler的Barkend就不一样,而Barkend是真真正正和底层进行通讯的一个角色。yarn 的模式下是通过反射的机制创建者两个东西的。

TaskScheduler之后再生成一个DAGScheduler(各种模式下都是一样的,切割job,划分stage)

9.TaskScheduler想master去注册这个application

10,。,master接受到这个请求之后会调用资源调度的算法,

11.找空闲的机器worker

12.为这个app启动多个executors

13.executors启动完成之后会反向注册到TaskScheduler上面来(也就是注册到了sparkContent,driver上面来)然后这个TaskScheduler会拿到分配到的这几个executors

14.注册,资源分配完成之后,j结束content 的初始化,开始划分我们的代码,通常是碰到了一个action(runjob方法)的时候就会触发DAGScheduler,将每一个job划分成多个stage,每个stage产生多个task,然后task放到taskSet里面

 

 

 

17.把task打开,然后丢进相应的executor里面

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值