Spark的分布式计算原理(涉及宽窄依赖、DAG、阶段划分、 shuffle过程以及 spark计算引擎的工作机制)
发布时间
阅读量:
阅读量
文章结构概述
- 1、RDD依赖
-
- 1.1 依赖关系
- 1.2 窄依赖
- 1.3 宽依赖
- 1.4 宽依赖与窄依赖的对比分析
-
2、DAG
-
3、stage划分
-
- 3.1 编写本地代码的原因
- 3.2 将运算逻辑迁移而非数据迁移
-
4、Spark Shuffle流程
-
5、Spark计算引擎运作机制
-
1、RDD依赖
在Spark框架中,RDD的高效运行与DAG图存在密切关联。在DAG调度过程中,需要将计算流程划分为多个stage,而这一划分的核心依据正是RDD之间的依赖关系。
Lineage意为血统或遗传,是RDD最核心的特征之一,其主要作用在于记录RDD的依赖信息;通过Lineage机制,RDD实现了基于数据血统的容错处理方式。
1.1 依赖关系
RDD所存在的依赖关系可划分为两种类型,即窄依赖与宽依赖。其中,宽依赖亦被称为shuffle依赖,其特点在于数据需要进行跨节点的传输与重组。
1.2 窄依赖
窄依赖:当子RDD的某一特定分区仅引用父RDD的一个分区时,即构成窄依赖。其特征如下:
单个子RDD的分区仅与父RDD的一个分区相对应,例如在执行map、filter、union等操作时的情形;
单个子RDD的分区可能对应父RDD的多个分区
全部评论 (0)
还没有任何评论哟~
