Spark运行基本流程-----学习笔记

Spark运行基本流程-----学习笔记

1、首先构建基本运行环境:Driver创建一个SparkContext,进行资源的申请、任务的分配和控制;(Shell中不需要构建,系统会自动生成一个SC)

2、资源管理器为Executor分配资源,并启动Executor进程;

3、SparkContext根据RDD的依赖关系构建DAG图,DAG图提交给DAGScheduler解析成Stage,然后把一个个TaskSet提交给底层调度器TaskScheduler处理;Executor向SparkContext申请Task,Task Scheduler将Task发放给Executor运行,并提供应用程序代码;

4、Task在Executor上运行,把执行结果反馈给TaskScheduler,然后反馈给DAGScheduler,运行完毕后写入数据并释放所有资源 ;(层层反馈)

特点:

1、每个Application都有自己专属的Executor进程,并且该进程在Application运行期间一直驻留。Executor进程以多线程的方式运行Task

2、Spark运行过程与资源管理器无关,只要能够获取Executor进程并保持通信即可

3、Task采用了数据本地性和推测执行等优化机制