更新时间:2023-06-23 来源:黑马程序员 浏览量:
Spark会产生DAG图,DAG图会基于分区和宽窄依赖关系划分阶段。一个阶段的内部都是窄依赖,窄依赖内,如果形成前后1:1的分区对应关系,就可以产生许多内存迭代计算的管道。
这些内存迭代计算的管道,就是一个个具体的执行Task,一个Task是一个具体的线程,任务跑在一个线程内,就是走内存计算了。
Spark的算子丰富,MapReduce算子圆乏(Map和Reduce),MapReduce这个编程模型,很难在一套MR中处理复杂的任务。很多的复杂任务,是需要写多个MapReduce进行串联.多个MR串联通过磁盘交互数据。
Spark可以执行内存迭代,算子之间形成DAG基于依赖划分阶段后,在阶段内形成内存迭代管道.但是MapReduce的Map和Reduce之间的交互依旧是通过硬盘来交互的.