1.Spark源码解析第一阶段总结:

在SparkContext类中有应用程序执行的三大核心组件,代码如下:
/**
* 注释:第四步:创建任务调度TaskScheduler
* 如果集群管理器是standalone模式:该方法返回(StandaloneSchedulerBackend,TaskSchedulerImpl)
*/
// Create and start the scheduler
val (sched, ts) = SparkContext. createTaskScheduler(this, master, deployMode)
_schedulerBackend = sched
_taskScheduler = ts
/**
* 注释:第五步:创建和启动DAGScheduler
* 1、内部初始化了一个:DAGSchedulerEventProcessLoop 用来处理各种任务
* 2、在 DAGSchedulerEventProcessLoop 创建的时候,构造函数的内部的最后一句代码执行了 DAGSchedulerEventProcessLoop的启动。
* 将来任务的提交,取消等,都会发送一个事件给 DAGSchedulerEventProcessLoop
* 从而触发 dagScheduler.onRecevie() 的运行。
*/
_dagScheduler = new DAGScheduler(this)
_heartbeatReceiver.ask[Boolean](TaskSchedulerIsSet)
/**
* 注释:第六步:TaskScheduler的启动,主要任务:backend.start()
*/
// start TaskScheduler after task
Spark执行流程解析

本文解析了Spark应用程序的执行流程,从SparkContext初始化开始,详细介绍了TaskScheduler、DAGScheduler的作用及启动过程。并通过实例说明了Application、Job、Stage、Task之间的关系。
最低0.47元/天 解锁文章
1810

被折叠的 条评论
为什么被折叠?



