专栏首页用户画像Spark学习:Spark源码和调优简介 Spark Core (二)

Spark学习:Spark源码和调优简介 Spark Core (二)

本文基于 Spark 2.4.4 版本的源码,试图分析其 Core 模块的部分实现原理,其中如有错误,请指正。为了简化论述,将部分细节放到了源码中作为注释,因此正文中是主要内容。

第一部分内容见:

Spark学习:Spark源码和调优简介 Spark Core (一)

Task 阶段

下面是重头戏submitMissingTasks,这个方法负责生成 TaskSet,并且将它提交给 TaskScheduler 低层调度器。 partitionsToCompute计算有哪些分区是待计算的。根据 Stage 类型的不同,findMissingPartitions的计算方法也不同。

// DAGScheduler.scala

private def submitMissingTasks(stage: Stage, jobId: Int) {

logDebug("submitMissingTasks(" + stage + ")")



// First figure out the indexes of partition ids to compute.

val partitionsToCompute: Seq[Int] = stage.findMissingPartitions()

...



// ResultStage.scala

override def findMissingPartitions(): Seq[Int] = {

val job = activeJob.get

(0 until job.numPartitions).filter(id => !job.finished(id))

}

// ActiveJob.scala

val numPartitions = finalStage match {

// 对于ResultStage,不一定得到当前rdd的所有分区,例如first()和lookup()的Action,

// 因此这里是r.

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 剑指offer 按之字形顺序打印二叉树

    请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。

    week
  • 剑指offer 二叉树中和为某一值的路径

    输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在...

    week
  • 剑指offer 重建二叉树

    输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6...

    week
  • 快速学习-scala数据类型介绍

    Scala 与 Java有着相同的数据类型,在Scala中数据类型都是对象,也就是说scala没有java中的原生类型

    cwl_java
  • R语言之生信(10)多个探针对应一个基因的处理方法

    在生信分析过程中,经常遇到一个问题,芯片或者测序数据经常出现多个探针对应一个基因的情况。这个时候处理方法比较多,比如说比较常见的是均值或者最大值。本篇文章的主要...

    用户1359560
  • Leetcode 226. Invert Binary Tree

    Invert a binary tree. 4 / \ 2 7 / \ / \ 1 3 6 9 to ...

    triplebee
  • Solidity 0.6.9 更新,calldata 有更多用武之地

    回顾一下 solidity 中数据位置,即说明数据存储在哪里,solidity 有 3 个位置:

    Tiny熊
  • 学习笔记-小甲鱼Python3学习第十六

    迭代:重复反馈过程的活动,其目的通常是为了接近或达到所需的目标或结果,每次对过程重复称之为一次迭代,而每次迭代的结果都会被用来下一次迭代的初始值。

    py3study
  • 从零开始入门 K8s | K8s 的应用编排与管理

    本文节选自《CNCF x Alibaba 云原生技术公开课》第5讲:应用编排与管理:核心原理。

    CNCF
  • 有关带scala版本的eclipse4.7的下载

    马克-to-win @ 马克java社区:有关带scala版本的eclipse4.7的下载, 你可以直接去: http://scala-ide.org/down...

    马克java社区

扫码关注云+社区

领取腾讯云代金券