Spark处理框架

2018-10-20  本文已影响0人  zealscott

Spark:an unified analytics engine for large-scale data processing

Spark VS MapReduce

Hadoop MapReduce局限性

Spark改进

特点

RDD抽象

概念

RDD

RDD特性

RDD运算操作

DAG

RDD Lineage

RDD依赖关系

窄依赖

宽依赖

区别

为什么关系依赖关系

stage类型

ShuffleMapStage

ResultStage

体系结构

54003883692

Spark架构设计

层次结构

概念

逻辑执行角度

物理执行角度

工作流程

执行Application的一般过程

Spark运行流程特点

DAG运行过程

RDD在Spark架构中的运行过程:

  1. 创建RDD对象;
  2. SparkContext负责计算RDD之间的依赖关系,构建DAG;
  3. DAGScheduler负责把DAG图分解成多个Stage,每个Stage中包含了多个Task,每个Task会被TaskScheduler分发给各个WorkerNode上的Executor去执行

Spark Executor

与MapReduce相比,Spark所采用的Executor有两个优点:

容错机制

Master故障

几乎没有办法

Worker故障

Lineage机制

RDD容错机制:血缘关系(Lineage)、重新计算丢失分区、无需回滚系统、重算过程在不同节点之间并行、只记录粗粒度的操作

根据依赖关系重新计算上一分区:

54003940212

例子

  1. HadoopRDD
    • 分区:对应于HDFS输入文件的文件块
    • 依赖:无依赖
    • 函数:读取每个文件块
    • 最佳位置:HDFS的文件块对应的位置
    • 分区策略:无
  2. FilteredRDD
    • 分区:与父亲RDD一致
    • 依赖:与父亲RDD存在窄依赖
    • 函数:计算父亲的每个分区并执行用户提供的过滤函数
    • 最佳位置:无,与父亲RDD一致
    • 分区策略:无
  3. JoinedRDD
    • 分区:每个reduce任务(个数可指定)对应一个分区
    • 依赖:常常与所有父亲RDD存在宽依赖
    • 函数:计算shuffle数据,并且执行join操作
    • 最佳位置:无
    • 分区策略:HashPartitioner

RDD存储机制

检查点机制

上一篇下一篇

猜你喜欢

热点阅读