《深入理解Spark:核心思想与源码分析》——3.7节创建和启动DAGScheduler
本节书摘来自华章社区《深入理解Spark:核心思想与源码分析》一书中的第3章,第3.7节创建和启动DAGScheduler,作者耿嘉安,更多章节内容可以访问云栖社区“华章社区”公众号查看 3.7 创建和启动DAGSchedulerDAGScheduler主要用于在任务正式交给TaskSchedulerImpl提交之前做一些准备工作,包括:创建Job,将DAG中的RDD划分到不同的Stage,提交Stage,等等。创建DAG-Scheduler的代码如下。 @volatile private[spark] var dagScheduler: DAGScheduler = _ dagScheduler = new DAGScheduler(this) DAGScheduler的数据结构主要维护jobId和stageId的关系、Stage、ActiveJob,以及缓存的RDD的partitions的位置信息,见代码清单3-32。代码清单3-32 DAGScheduler维护的数据结构 private[scheduler] val nextJobId = new AtomicInteger(0...