Spark修炼之道(高级篇)——Spark源码阅读:第三节 Spark Job的提交

  • 时间:
  • 浏览:0
  • 来源:uu快3下载网址_uu快3IOS下载_电脑版

SparkContext中的runJob法律辦法 ,该法律辦法 中再调用DAGScheduler中的runJob法律辦法 ,具体源码如下:

从中间的代码都都可不能能 看一遍,最后调用的dagScheduler.handleJobSubmitted法律辦法 完成整个job的提交。中间便是怎样才能将job划分成各个Stage及TaskSet,提交到各个Worker节点执行,这每项内容,大伙儿儿在下一节中进行讲解

DAGScheduler中的runJob法律辦法 ,该法律辦法 中通过submitJob法律辦法 进行任务的提交,具体源码如下:

submitJob法律辦法 的具体源码如下:

中间的多多应用程序 代码counts.saveAsTextFile(“file:///hadoopLearning/spark-1.5.1-bin-hadoop2.4/countReslut.txt”)会触发action操作,Spark会生成有一另一两个Job来执行相关计算

org.apache.spark.scheduler.DAGScheduler.scala文件中定义了DAGSchedulerEventProcessLoop,该类继承了EventLoop,对onReceive法律辦法 进行了实现,具体源码如下:

跳转到saveAsHadoopDataset,并调用其self.context.runJob即SparkContext中的runJob法律辦法

eventProcessLoop.post(JobSubmitted(

jobId, rdd, func2, partitions.toArray, callSite, waiter,

SerializationUtils.clone(properties)))将任务提交JobSubmitted放置在event队列当中,eventThread后台多应用程序 将对该任务提交进行处置,该eventThread被定义在DAGSchedulerEventProcessLoop的父类EventLoop当中,其源码如下:

前一大伙儿儿分析了SparkContext的创建,你你是什么 节,大伙儿儿介绍在RDD执行的日后,怎样才能提交job进行分析,同样是下面的源码: