NOTE:本文要求读者对spark的运行原理有基本的了解。 需要明确的一点是,abort不同于fail。如果一个stage fail了,那么它还有可能被resubmit,然后重新执行。而如果一个stage abort了,…
标签:stage
【Spark Core】TaskScheduler源码与任务提交原理浅析2
引言 上一节《TaskScheduler源码与任务提交原理浅析1》介绍了TaskScheduler的创建过程,在这一节中,我将承接《Stage生成和Stage源码浅析》中的submitMissingTasks函数继续介绍…
Hive 差集实现
1. IN query plan 1. NOT IN select * from id_full as a where a.id not in (select id from id_incr where day=2018…
[spark] TaskScheduler 任务提交与调度源码解析
在DAGScheduler划分为Stage并以TaskSet的形式提交给TaskScheduler后,再由TaskScheduler通过TaskSetMagager对taskSet的task进行调度与执行。 taskSc…
Jenkins Pipeline语法(下)
顺序执行的stage(Sequential Stages) 声明性Pipeline中的stage可以按顺序声明待运行的stage列表。需要注意的是一个stage有且只能有一个 steps,parallel或者stages…
[spark] Shuffle Read解析 (Sort Based Shuffle)
Shuffle Write 请看 Shuffle Write解析。 本文将讲解shuffle Reduce部分,shuffle的下游Stage的第一个rdd是ShuffleRDD,通过其compute方法来获取上游Sta…
spark 任务分发
spark大数据计算框架的原理就是以scala的内存计算为基础,然后将一个大计算量的计算,在spark中叫job,根据宽窄依赖划分成多个stage,每个stage包含多个task,然后把task发送给work上的exec…
Spark executor中task的数量与最大并发数
关于executor和task的概念可以参考官方文档 本文使用的源码是spark 2.0.0版本 Task的数量 根据类DAGScheduler中的submitMissingTasks方法可以知道,在stage中会为每个…
jenkins pipeline初见
Pipeline支持两种语法:Declarative(在Pipeline 2.5中引入)和Scripted Pipeline 语法: pipeline { /* insert Declarative Pipeline h…
spark中如何划分stage(面试)
spark中如何划分stage 窄依赖指父RDD的每一个分区最多被一个子RDD的分区所用,表现为 一个父RDD的分区对应于一个子RDD的分区 两个父RDD的分区对应于一个子RDD 的分区。 宽依赖指子RDD的每个分区都要…
Hive MapJoin 执行计划
本文通过展示hive.mapjoin.smalltable.filesize 这个参数的设置,来比较是否使用mapjoin的执行计划的区别 测试sql: SELECT id, clienttime FROM ( SELE…
Spark shuffle writer源码解析
Shuffle分类 一个作业经过spark的DAGSchedule调度器划分为多个stage,同时有些下游的stage依赖上游的stage,这样会导致上游的stage做map的工作,下游的stage做reduce的工作。…