Spark 概念学习系列之DAG的生成(十一)
2016-07-31 19:53
507 查看
[b]DAG的生[/b][b]成[/b]
原始的RDD(s)通过一系列转换就形成了DAG。RDD之间的依赖关系,包含了RDD由哪些Parent RDD(s)转换而来和它依赖parent RDD(s)的哪些Partitions,是DAG的重要属性。借助这些依赖关系,DAG可以认为这些RDD之间形成了Lineage(血统)。借助Lineage,能保证一个RDD被计算前,它所依赖的parent RDD都已经完成了计算;同时也实现了RDD的容错性,即如果一个RDD的部分或者全部的计算结果丢失了,那么就需要重新计算这部分丢失的数据。
[b] 那么Spark是如何根据DAG来生成计算任务呢?[/b]
[b] [/b]首先,根据依赖关系的不同将DAG划分为不同的阶段(Stage)。对于窄依赖,由于Partition依赖关系的确定性,Partition的转换处理就可以在同一个线程里完成,窄依赖被Spark划分到同一个执行阶段;对于宽依赖,由于Shuffle的存在,只能在parent RDD(s) Shuffle处理完成后,才能开始接下来的计算,因此宽依赖就是Spark划分Stage的依据,即Spark根据宽依赖将DAG划分为不同的Stage。
在一个Stage内部,每个Partition都会被分配一个计算任务(Task),这些Task是可以并行执行的。
Stage之间根据依赖关系变成了一个大粒度的DAG,这个DAG的执行顺序也是从前向后的。也就是说,Stage只有在它没有parent Stage或者parent Stage都已经执行完成后,才可以执行。
欢迎大家,加入我的微信公众号:大数据躺过的坑 免费给分享
同时,大家可以关注我的个人博客:
http://www.cnblogs.com/zlslch/ 和 http://www.cnblogs.com/lchzls/
人生苦短,我愿分享。本公众号将秉持活到老学到老学习无休止的交流分享开源精神,汇聚于互联网和个人学习工作的精华干货知识,一切来于互联网,反馈回互联网。
目前研究领域:大数据、机器学习、深度学习、人工智能、数据挖掘、数据分析。 语言涉及:Java、Scala、Python、Shell、Linux等 。同时还涉及平常所使用的手机、电脑和互联网上的使用技巧、问题和实用软件。 只要你一直关注和呆在群里,每天必须有收获
以及对应本平台的QQ群:161156071(大数据躺过的坑)
原始的RDD(s)通过一系列转换就形成了DAG。RDD之间的依赖关系,包含了RDD由哪些Parent RDD(s)转换而来和它依赖parent RDD(s)的哪些Partitions,是DAG的重要属性。借助这些依赖关系,DAG可以认为这些RDD之间形成了Lineage(血统)。借助Lineage,能保证一个RDD被计算前,它所依赖的parent RDD都已经完成了计算;同时也实现了RDD的容错性,即如果一个RDD的部分或者全部的计算结果丢失了,那么就需要重新计算这部分丢失的数据。
[b] 那么Spark是如何根据DAG来生成计算任务呢?[/b]
[b] [/b]首先,根据依赖关系的不同将DAG划分为不同的阶段(Stage)。对于窄依赖,由于Partition依赖关系的确定性,Partition的转换处理就可以在同一个线程里完成,窄依赖被Spark划分到同一个执行阶段;对于宽依赖,由于Shuffle的存在,只能在parent RDD(s) Shuffle处理完成后,才能开始接下来的计算,因此宽依赖就是Spark划分Stage的依据,即Spark根据宽依赖将DAG划分为不同的Stage。
在一个Stage内部,每个Partition都会被分配一个计算任务(Task),这些Task是可以并行执行的。
Stage之间根据依赖关系变成了一个大粒度的DAG,这个DAG的执行顺序也是从前向后的。也就是说,Stage只有在它没有parent Stage或者parent Stage都已经执行完成后,才可以执行。
欢迎大家,加入我的微信公众号:大数据躺过的坑 免费给分享
同时,大家可以关注我的个人博客:
http://www.cnblogs.com/zlslch/ 和 http://www.cnblogs.com/lchzls/
人生苦短,我愿分享。本公众号将秉持活到老学到老学习无休止的交流分享开源精神,汇聚于互联网和个人学习工作的精华干货知识,一切来于互联网,反馈回互联网。
目前研究领域:大数据、机器学习、深度学习、人工智能、数据挖掘、数据分析。 语言涉及:Java、Scala、Python、Shell、Linux等 。同时还涉及平常所使用的手机、电脑和互联网上的使用技巧、问题和实用软件。 只要你一直关注和呆在群里,每天必须有收获
以及对应本平台的QQ群:161156071(大数据躺过的坑)
相关文章推荐
- Spark RDD概念学习系列之Spark的算子的分类(十一)
- Spark RDD概念学习系列之Spark的算子的分类(十一)
- STL系列十一 随机三趣题——随机重排,文件中随机取一行,生成N个随机数。
- STL系列十一 随机三趣题——随机重排,文件中随机取一行,生成N个随机数。
- Spark 概念学习系列之如果Apache Spark集群中没有分布式系统,则会?(六)
- Spark RDD概念学习系列之RDD的创建(六)
- Spark 概念学习系列之Apache Spark 架构详解(十)(必须好好理解悟透)
- 算法系列之十一:圆生成算法
- Spark Tachyon概念学习系列之Spark Tachyon是什么?(一)
- Spark 概念学习系列之Spark的发展历程(四)
- Spark 概念学习系列之Spark给我们带来了什么惊喜?(三)
- Spark Streaming概念学习系列之Spark Streaming是什么?(一)
- STL系列十一 随机三趣题——随机重排,文件中随机取一行,生成N个随机数。
- spark-streaming系列------- 4. Spark-Streaming Job的生成和执行
- STL系列十一 随机三趣题——随机重排,文件中随机取一行,生成N个随机数。
- Spark 概念学习系列之Spark生态系统BDAS(五)
- 算法系列之十一:圆生成算法 .
- STL系列十一 随机三趣题——随机重排,文件中随机取一行,生成N个随机数。
- Hadoop概念学习系列之Hadoop、Spark学习路线(很值得推荐)(十八)
- Spark 概念学习系列之Spark的优点(八)