sparkCore源码解析之Job
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1. 概念 站在不同的角度看job transaction: Job是由一组RDD上转换和动作组成。 stage: Job是由ResultStage和多个ShuffleMapState组成 init:由action操作触发提交执行的一个函数 action操作会触发调用sc.runJob方法, Job是一组rdd的转换以及最后动作的操作集合,它是Spark里面计算最大最虚的概念,甚至在spark的任务页面中都无法看到job这个单位。 但是不管怎么样,在spark用户的角度,job是我们计算目标的单位,每次在一个rdd上做一个动作操作时,都会触发一个job,完成计算并返回我们想要的数据。 Job是由一组RDD上转换和动作组成 ,这组RDD之间的转换关系表现为一个有向无环图(DAG),每个RDD的生成依赖于前面1个或多个RDD。 在Spark中,两个RDD之间的依赖关系是Spark的核心。站在RDD的角度,两者依赖表现为点对点依赖, 但是在Spark中,RDD存在分区(partition)的概念,两个RDD之间的转换会被细化为两个RDD分区之间的转换。 Stage的划分是对一个Job里面一系列RDD转换和动作进行划分。 首先job是因动作而产生,因此每个job肯定都有一个ResultStage,否则job就不会启动。