spark流程源码解析

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

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

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

9.TaskScheduler想master去注册这个application

扫描二维码关注公众号,回复: 2699472 查看本文章

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里面

猜你喜欢

转载自blog.csdn.net/qq_25843323/article/details/80195602