前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spark RDD -> Stage Task

Spark RDD -> Stage Task

原创
作者头像
jasong
发布2023-07-21 12:01:01
1821
发布2023-07-21 12:01:01
举报
文章被收录于专栏:ClickHouseClickHouse

Spark 学习初期

RDD分为两种: Transformation 转换算子, Action 动作算子

Transformation: 在现有的数据集上创建一个新的数据集. Map, Filter, filter

Action: 在数据集计算完成后,返回给Driver,即需要数据重组织 Reduce , Union , Sort, Group By

宽依赖结果返回给Driver来处理,执行下一个Stage

原始得RDDs,通过一系列得转换行程了DAG

即当前RDD是由哪些Parent RDD(s)转换而来, 以及它的parent RDD(s)有哪些partitions ,DAG可以认为RDD之间有了血缘关系(Lineage)

根据依赖关系,将DAG划分为不同得Stage.

对于窄依赖, 由于Partition依赖关系的确定性, Partition的转换处理就可以来同一个线程内完成,所以窄依赖被Spark划分到同一个Stage内执行;

对于宽依赖,由于Shuffle的存在,只能在partition RDD(s) Shuffle处理完成之后,才能开始接下来的计算,所以宽依赖就是Spark划分Stage的依据,(Spark根据宽依赖将DAG划分为不同的Stage)

在一个Stage内部,每个Partitition都会被分配一个Task, Task之间支并行执行的.

Stage 之间根据依赖关系就变成了一个大力度的DAG,这个DAG的执行顺序也是从前向后的.

Stage只有在它没有Parent Stage或者parenet Stage都已经执行完成后,才可以执行

传统数据库,即按照Action 算子来切换PlanFragement

PlanFragment内部,按照并发切分PlanFragement Instance, PlanFragement Instance 之间是并发执行的

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档