Spark为什么比MapReduce快

  1. RDD缓存,RDD计算是可以设置缓存的,Spark把运算的中间数据存放在内存,迭代计算效率更高。
  2. Map缓存,Map的结果也是会被缓存的,以便以后利用
  3. Spark容错性好,弹性数据集可以进行计算重建,MR的容错只能重新计算。
  4. 对Shuffle操作的优化,生成的中间文件减少了,那么磁盘IO就会减少,Spark计算对内存的利用和运行的并行度比MR高。
  5. 由于MapReduce会对中间数据进行排序,所以Reduce操作必须等到文件全部生成并进行排序之后才可以进行。Spark不是这种自动排序,因此可以生成一点,刷新ShuffleMapTask缓冲区到文件中,然后直接进行Reduce。
  6. Spark对于Executor的优化,在JVM虚拟机的基础上对内存弹性利用,使得内存利用率更高。

你可能感兴趣的:(Spark为什么比MapReduce快)