spark架构原理(一)

来源:互联网 发布:网络手游可以破解吗 编辑:程序博客网 时间:2024/06/06 07:20

spark内核架构由一下几部分组成
1、Application
自己的spark程序

2、spark-submit
提交任务, standalone模式下会创建一个DriverActor进程

3、Driver(进程)
执行application程序,初始化sparkcontext,

4、SparkContext
构造DAGschedule和TaskSchedule

8、Job
每执行一个action,会创建一个job,提交给DAGSchedule。

5、DAGScheduler
DAGschedule会将job按照stage划分算法划分为stage,并为每一个stage创建taskset。

6、TaskScheduler
通过一个后台进程连接master,向master注册application,并接受excutor的反向注册,然后将taskset中的每一个task提交到excutor上(task分配算法)。

7、Master
master接收到application注册请求后,使用资源调度算法,在集群的worker上,为这个application启动多个excutor。

6、Worker
worker为application启动excutor

7、Executor
executor启动后,反向注册到taskscheduler上,executor本身是一个进程,包括一个线程池和taskRunner,每接收到一个task,taksRunner封装task,对要执行的程序,拷贝反序列化。然后从线程池中取出一个线程,执行task。

11、ShuffleMapTask and ResultTask
task有两张,shufflemaptask和resulttask,只有最后一个stage是resultTask,之前的stage都是shufflemaptask。

stage作为taskset提交给excutor执行,每个task执行rdd的一个partition。