据我所知,Spark 将每个节点的磁盘(HDFS)中的数据预加载到每个节点的 RDD 中进行计算。但正如我猜测的那样,MapReduce 必须还将数据从 HDFS 加载到内存,然后在内存中进行计算。那么.. 为什么 Spark 更快速? 仅仅因为当 MapReduce 想要进行计算而 Spark 预加载数据时,MapReduce 每次都将数据加载到内存中?非常感谢。
最佳答案
Spark 使用弹性分布式数据集 (RDD) 的概念,它允许透明地将数据存储在内存中,并在需要时将其保存到磁盘。
另一方面,在 Map reduce 中,在 Map 和 reduce 任务之后数据将被洗牌和排序(同步屏障)并写入磁盘。
在 Spark 中,没有同步障碍会减慢 map-reduce 的速度。内存的使用使执行引擎非常快。
关于hadoop - Spark vs MapReduce,为什么Spark比MR快,原理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25374980/