美文网首页
Spark-JobWaiter

Spark-JobWaiter

作者: 丹之 | 来源:发表于2019-01-01 16:56 被阅读14次

介绍

等待DAGScheduler作业完成的对象。任务完成后,它会通过他们的任务结果给定的处理函数。
一个JobWaiter对象与一个job唯一一一对应,一旦task完成,将该task结果填充到SparkContext.runJob创建的results数组中

构造函数

private[spark] class JobWaiter[T](
    dagScheduler: DAGScheduler,
    val jobId: Int,
    totalTasks: Int,
    resultHandler: (Int, T) => Unit)
  extends JobListener with Logging {

在SparkContext.runJob中,通过

 def runJob[T, U: ClassTag](
      rdd: RDD[T],
      func: (TaskContext, Iterator[T]) => U,
      partitions: Seq[Int]): Array[U] = {
    val results = new Array[U](partitions.size)
    runJob[T, U](rdd, func, partitions, (index, res) => results(index) = res)
    results
  }

来创建容纳job结果的数据,数组的每个元素对应与之下标相等的partition的计算结果;并将结果处理函数(index, res) => results(index) = res作为参数传入runJob,以使在runJob内部的创建的JobWaiter对象能够在得知taskSucceeded之后,将该task的结果填充到results中。

重要方法

https://github.com/keepsimplefocus/spark-sourcecodes-analysis/blob/master/spark-core/%5BSpark%E6%BA%90%E7%A0%81%E5%89%96%E6%9E%90%5D-JobWaiter.md

相关文章

  • Spark-JobWaiter

    介绍 等待DAGScheduler作业完成的对象。任务完成后,它会通过他们的任务结果给定的处理函数。一个JobWa...

网友评论

      本文标题:Spark-JobWaiter

      本文链接:https://www.haomeiwen.com/subject/kwgnlqtx.html