Spark任务提交底层原理

Spark任务提交底层原理

                                      Spark运行机制

1.驱动器(driver)应用程序的入口,执行用户编写的用来创建的SparkContext,创建RDD以及RDD之间的转换操作的代码(触发action)

2.RDD的创建和RDD之间的转换就是有向无环图(DAG),将有向无环图发送给DAGScheduler

3.DAGScheduler通过血统(款依赖,窄依赖)划分stage,并将stage组合成TaskSet(任务数)发送给TaskScheduler

4.通过TaskScheduler将TaskSet转换为Task任务,将任务添加到任务队列中提交给SchedulerBackend进行资源分配和任务调度

5.调度器给Task分配Executor,执行任务

                                    Spark调度管理

1.job(作业):有一个RDD Action生成的一个或多个阶段的所组成的 一次计算作业

2.TaskSet(任务集):由一组关联的,但互相之间没有shuffle依赖关系的任务所组成的任务集

3.Stage(阶段):如果遇到shuffle阶段结束

4.Task(任务):每个分区数据的最小处理单元

5Application(应用程序):Spark应用程序,有一个或多个作业组成