Advertisement

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)

还没有任何评论哟~