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应用程序,有一个或多个作业组成