以standalone模式(基于spark的Master—Worker)解析spark内核架构,先罗列spark内核中的几个概念再详解程序的执行流程。
一、常用名词
1、Application
2、spark-submit
3、Driver
4、SparkContext
5、Master
6、Worker
7、Executor
8、Job
9、DAGScheduler
10、TaskScheduler
11、ShuffleMapTask and ResultTask
二、架构详解
1、在客户端机器上用spark-submit来提交我们的程序,以standload模式来提交作业
2、spark会通过反射的方式,创建和构造一个DriverActor进程(Driver进程的作用是执行我们的Application,就是我们的代码)
3、从代码中可以看出,每次都是先构造SparkConf,在构造SparkContext或SparkSession
4、sparkContext在初始化时,做的最重要两件事就是构造DAGScheduler和TaskScheduler(它有自己的后台进程)
5、TaskSchedule实际上,负责通过后台进程去连接Master,向Master注册Application
6、Master接收到Application注册请求后,会使用自己的资源调度算法,在spark集群的worker上,为这个Application启动多个Executor
7、Master会连接Worker,通知worker为Application启动一个或多个Executor&#