首页技术文章正文

Spark是怎么做内存计算的?Spark为什么比MapReduce 快?

更新时间:2023-06-23 来源:黑马程序员 浏览量:

IT培训班

Spark会产生DAG图,DAG图会基于分区和宽窄依赖关系划分阶段。一个阶段的内部都是窄依赖,窄依赖内,如果形成前后1:1的分区对应关系,就可以产生许多内存迭代计算的管道。

这些内存迭代计算的管道,就是一个个具体的执行Task,一个Task是一个具体的线程,任务跑在一个线程内,就是走内存计算了。

Spark的算子丰富,MapReduce算子圆乏(Map和Reduce),MapReduce这个编程模型,很难在一套MR中处理复杂的任务。很多的复杂任务,是需要写多个MapReduce进行串联.多个MR串联通过磁盘交互数据。

Spark可以执行内存迭代,算子之间形成DAG基于依赖划分阶段后,在阶段内形成内存迭代管道.但是MapReduce的Map和Reduce之间的交互依旧是通过硬盘来交互的.

分享到:
在线咨询 我要报名
和我们在线交谈!