Spark DAG及内存迭代计算
创始人
2024-02-09 14:30:16

文章目录

    • DAG
      • Job与Action之间的关系
      • DAG和分区
    • DAG宽窄依赖
      • DAG宽窄依赖的划分
    • Spark内存迭代计算
    • 总结
      • Spark是怎么做内存计算的?DAG的作用?Stage阶段划分作用?
      • Spark为什么比MapReduce快?

DAG

  • Spark的核心是根据RDD来实现的,Spark Scheduler则为Spark核心实现的重要一环,其作用就是任务调度。Spark的任务调度就是如何组织任务去处理RDD中每个分区的数据,根据RDD的依赖关系构建DAG,基于DAG划分Stage,将每个Stage中的任务发到指定节点运行。基于Spark的任务调度原理,可以合理规划资源利用,做到尽可能用最少的资源高效地完成任务计算。
  • DAG也叫有向无环图,即有方向,没有闭环的图,如下WordCount DAG图所示:
    在这里插入图片描述
  • DAG作用就是表示代码的逻辑执行流程。

Job与Action之间的关系

  • 通常一个Action会产生一个DAG,会在程序中产生一个Job,所以一个Action = 一个DAG = 1个Job。之间的层级关系:1个application中可以包含多个job,每个Job中有一个DAG,每个Job是由一个Action产生的。

DAG和分区

  • DAG是Spark代码的逻辑执行图,这个DAG的最终作用就是为了构建物理上的Spark详细执行计划,所以由于Spark是分布式多分区的,DAG与分区之间还是有关联的。还是以上图WordCount DAG图为例,该图在textFile步骤上就执行3分区,全部的RDD就在3个分区上执行。

DAG宽窄依赖

  • 窄依赖:父RDD的一个分区,全部将数据发给子RDD一个分区。
  • 宽依赖(shuffle):父RDD的一个分区,将数据发给子RDD多个分区。
  • 我们可以看下图来真正地去理解宽窄依赖。
    在这里插入图片描述
    在这里插入图片描述

DAG宽窄依赖的划分

  • Spark根据DAG的宽窄依赖划分为不同的DAG阶段,划分依据是从后往前,遇到宽依赖就会划分出一个阶段,这个阶段也称为stage。如下图所示:
    在这里插入图片描述
  • 该图在DAG中,基于宽依赖,将DAG划分成了2个stage,后面的为stage0,前面的为stage1,在stage内部一定都是窄依赖。

Spark内存迭代计算

  • 根据上图的描述,基于带有分区的DAG以及阶段划分,可以从图中得到逻辑上最优的task分配,一个task是由一个线程来具体执行的,task对于rdd这一条执行的计算过程的直线(纯内存计算)也叫内存计算管道。
  • Spark默认收到了全局并行度的限制,除了个别算子由特殊分区的情况,大部分算子都会遵循全局并行度要求,来规划自己的分区数。Spark一般推荐只设置全局的并行度,不要再算子上再加上并行度(除了一些排序算子外)。

总结

Spark是怎么做内存计算的?DAG的作用?Stage阶段划分作用?

  • Spark会产生DAG图。
  • DAG图会基于分区和宽窄依赖关系划分阶段。
  • 一个阶段内部都是窄依赖,窄依赖内,如果形成前后的1:1的分区对应关系,就可以产生许多内存迭代计算管道。
  • 这些内存迭代计算的管道,就是一个个具体执行的Task。
  • 一个Task就是一个具体的线程,任务跑在一个线程内,就是走内存计算了。

Spark为什么比MapReduce快?

  • 从编程模型上来看,Spark算子多,处理速度快。MR编程模型很难在一套MR中处理复杂任务,需要些多套MR进行串联,多个MR串联通过磁盘交互数据,就很慢。Spark可以执行内存迭代,算子间形成DAG基于依赖划分阶段后,在阶段内形成内存迭代管道,但是MR的交互还是通过磁盘来实现。所以速度就很慢。

相关内容

热门资讯

世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...