Apache Spark 与 MapReduce
Posted
技术标签:
【中文标题】Apache Spark 与 MapReduce【英文标题】:Apache Spark vs. MapReduce 【发布时间】:2018-05-01 23:04:02 【问题描述】:我一直在查找 Spark 和 MapReduce 之间的区别,我真正发现的是 Spark 在内存和磁盘上运行,这大大加快了速度。
我还读到 MapReduce 更适合非常庞大的数据集,这仅仅是因为您可以将更多的数据加载到磁盘上而不是内存中吗?
但据推测,使用 Spark,无论如何您都在内存和磁盘之间移动数据,因此如果内存空间不足,您可以将一些数据移回磁盘,然后引入新数据进行处理。
基本上,还有什么真正的理由不再使用 MapReduce 了吗?
【问题讨论】:
您还应该看看 Tez,它可以用来代替 MapReduce,并且在某些基准测试中比 Spark 更好....最后,答案取决于您的用例。 .. 你是在做机器学习,还是 SQL、图形查询或流式处理?然后使用 Spark。您是否只是在操作一些数据集或执行您无法使用 Spark 的操作?还是您在维护旧代码?然后是 MapReduce @cricket_007 所以听起来 spark 总体上比 MapReduce 更好。但是当我研究这个时,我看到人们说 MapReduce 更适合真正庞大的数据集,我真的不明白当 Spark 既可以使用磁盘又可以使用 RAM 时会怎样。这只是一个学习练习,我没有实施任何一个。 问题是 MapReduce + Tez 会释放资源作为中间任务。即使您没有使用先前结果的一部分,Spark 也会将整个执行 DAG 保存在内存中。 【参考方案1】:据我所知,这里是 Spark 和 Hadoop Map Reduce 的简单且罕见的解决方案:
Hadoop Map Reduce 是批处理。
在 HDFS 中存在高延迟。以下是关于 Hadoop MapReduce 和 Spark 的完整说明:
http://commandstech.com/basic-difference-between-spark-and-map-reduce-with-examples/
火花:
来到 Spark 的是流式处理。
RDD 带来的低延迟。
Spark 和 Hadoop Map Reduce 用于以更少的代码处理海量数据。
【讨论】:
以上是关于Apache Spark 与 MapReduce的主要内容,如果未能解决你的问题,请参考以下文章
快速大数据:Apache Flink与Apache Spark处理流式数据比较
是否可以使用 spark 的 jdbc 驱动程序将 apache spark 与 jasper 集成?