Spark问题笔记4

对RDD的操作,体现在对算子的操作

算子分两类:Transformation、Action

运行调度:

->DAG->Stage->Task

DAGSchedule遇到Action时会回溯,当遇到shuffle时会产生新的Stage,从而产生Stage;

使用TaskSchedule对Stage1进行调度,把stage1 task任务委派到Worker上。

由于stage1 - stage2有个Shuffle,对stage1进行shuffleWriter

在worker上启动shuffleReader读取stage1的shuffleWriter读取然后启动stage2

宽依赖和宅依赖: 发生在RDD与RDD之间

本质区别为RDD与RDD之间的Partition是否为一一对应的关系。

Stage的好处是可以进行算子融合,做流水处理,提高任务处理效率。

def compute(split: Partition, context: TaskContext): Iterator[T]

protected def getPartitions: Array[Partition]

窄依赖:map、filter、unio、co-partition下的join

宽依赖:join、groupBy等

Stage有两种:

  • ShuffleMapStage
    这种Stage是以Shuffle为输出边界,其输入边界可以是从外部获取数据,也可以是另一个ShuffleMapStage的输出,其输出可以。是另一个Stage的开始ShuffleMapStage的最后Task就是ShuffleMapTask。在一个Job里可能有该类型的Stage,也可以能没有该类型Stage。
  • ResultStage
    这种Stage是直接输出结果。其输入边界可以是从外部获取数据,也可以是另一个ShuffleMapStage的输出。ResultStage的最后Task就是ResultTask。在一个Job里必定有该类型Stage。一个Job含有一个或多个Stage,但至少含有一个ResultStage。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值