hadoop - Spark vs MapReduce,为什么Spark比MR快,原理?

标签 hadoop mapreduce apache-spark

据我所知,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/

相关文章:

apache-spark - Spark Streaming 崩溃到 Kafka Ran out of messages before reaching ending offset exception

apache-spark - 将 Spark 结构化流输出写入 Kafka 主题

performance - Spark中如何获取从hdfs读取数据的时间成本

hadoop - 从 Spark 输出数十亿行

hadoop - 我可以将 opentsdb 数据库用于车辆 GPS 数据吗?

java - Cassandra setInputSplitSize 无法正常工作

mongodb - 如何根据数组元素的索引对文档进行分组?

logging - 如何从我的 map/reduce 应用程序登录?

hadoop - 如何在CentOS的hadoop上安装hive?

scala - 无法在Spark 1.4.1b群集上启动spark-shell