Standalone内部实现原理:
Spark Application运行的主要流程如下(以Spark-submit模式提交,Driver在本地)
(1)客户端启动,初始化相关的环境变量,包括Application代码的提交。
(2)反射调用org.apache.spark.deploy.yarn.Client,创建DriverActor(其他方式提交,Driver可能运行在Worker节点中)。
(3)向Master注册Driver
(4)Driver初始化SparkContext,DAGScheduler,TaskScheduler等
(5)DAGScheduler向Master注册Application,Master接受请求后,根据资源情况向Worker发送指令启动Executor,Executor启动后向Driver注册。
(6)DAGScheduler进行Job的Stage划分
(7)DAGScheduler提交作业给TaskScheduler
(8)TaskScheduler向注册来的Executor发送LaunchTask命令进行任务的运行
(9)Executor端运行Task相关信息的反序列化,相关Jar包和配置文件的下载,并运行
(10)如果运行的ShuffleMapTask,将结果保存在本地文件中,