spark比MapReduce快的原因

park比MapReduce快的原因

Spark是基于内存的,而MapReduce是基于磁盘的迭代

  1. MapReduce的设设计:中间结果保存在文件中,提高了可靠性,减少了内存占用。但是牺牲了性能。
  2. Spark的设计:数据在内存中进行交换,要快一些,但是内存这个东西,可靠性不如磁盘。所以性能方面比MapReduce要好。

DAG计算模型在迭代计算上还是比MapReduce的效率更高

有向无环图是指:一个图从顶点出发,无法再回到原点,那么这种图叫做有向无环图。

DAG计算模型在spark任务调度

Spark比MapReduce快的根本原因在于DAG计算模型,一般而言,DAG比MapReduce在大多数情况下可以减少shuffle次数,spark的DAG相当于一个改进版的MapReduce,如果计算不涉及其他节点进行数据交换,spark可以在内存中一次性完成这些操作,也就是中间结果无需落地磁盘,减少了磁盘IO的操作。但是,如果计算过程中涉及到计算交换,Spark也会把shuffle的数据写磁盘。

Spark比MapReduce快的主要原因是spark将反复用到的数据cache到内存中,减少数据加载耗时。

Spark是粗粒度资源调度,MapReduce是细粒度资源调度

Rdd的五大特性

  1. rdd是由一系列的partition组成
  2. 每一个函数或者算子实际上是作用在partition上的,
  3. Rdd之间具有相互依赖关系,
  4. 分区器是作用在(k,v)格式的rdd上的,分区器作用在shuffle的written阶段,决定了每一条记录写入哪一个分区

(k,v)格式的rdd:如果rdd中的数组是由二元对象组成的,这个rdd就是(k,v)格式的rdd

  1. 每个rdd都会提供最佳的计算位置,有利于计算数据的本地化,符合大数据的计算原则,计算向数据移动。

你可能感兴趣的:(Spark学习)