1.为应用构建起基本的运行环境,即由Driver创建一个SparkContext进行资源的申请、任务的分配和监控
2.资源管理器为Executor分配资源,并启动Executor进程
3.
- sparkContext根据RDD的依赖关系构建DAG图,DAG图提交给DAGScheduler解析成Stage,然后把一个个TaskSet提交给底层调度器TaskScheduler处理
- Executor向SparkContext申请TaskTask Scheduler将Task发放给Executor运行并提供应用程序代码
4.Task在Executor上运行把执行结果反馈给TaskScheduler,然后反馈给DAGScheduler,运行完毕后写入数据并释放所有资源
Spark运行架构特点
- 每个Application都有自己专属的Executor进程,并且该进程在Applicat期间一直驻留。Executor进程以多线程的方式运行Task
- Spark运行过程与资源管理器无关,只要能够获取Executor进程并保持通信即可
- Task采用了数据本地性和推测执行等优化机制