据我所知,Spark 将数据从每个节点的磁盘(HDFS)预加载到每个节点的 RDD 中进行计算。但是据我猜测,MapReduce 也必须将数据从 HDFS 加载到内存中,然后在内存中进行计算。那么,为什么 Spark 更快呢?只因为 MapReduce 每次想要进行计算时都需要将数据加载到内存中,而 Spark 预加载了数据。非常感谢。
Hadoop Map Reduce
2.在 HDFS 中存在高延迟。这里有关于 Hadoop MapReduce 和 Spark 的完整解释。
http://commandstech.com/basic-difference-between-spark-and-map-reduce-with-examples/
Spark:
来到Spark就是流处理
RDDs带来低延迟。
有一个叫做弹性分布式数据集(RDD)的概念,Spark使用它来透明地将数据存储在内存中,并在需要时将其持久化到磁盘上。
而在MapReduce中,在Map和Reduce任务之后,数据将被洗牌和排序(同步障碍),并写入磁盘。
在Spark中,没有减慢MapReduce速度的同步障碍。而且内存的使用使执行引擎非常快速。