赞
踩
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。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。