mapreduce - 为什么 Spark 比 Hadoop MapReduce 更快

标签 mapreduce apache-spark

有人可以使用字数统计示例解释一下为什么 Spark 比 MapReduce 更快吗?

最佳答案

bafna 的回答提供了故事的内存方面,但我想补充另外两个重要事实:DAG 和生态系统

  1. Spark 使用“惰性求值”来形成连续计算阶段的有向无环图 (DAG)。通过这种方式,可以优化执行计划,例如最大限度地减少数据的混洗。相反,这应该在 MapReduce 中通过调整每个 MR 步骤来手动完成。 (如果你熟悉RDBMS中的执行计划优化或者Apache Tez的DAG式执行,会更容易理解这一点)
  2. Spark 生态系统已经建立了一个多功能组件堆栈来处理 SQL、ML、Streaming、Graph Mining 任务。但在 hadoop 生态系统中,您必须安装其他软件包才能完成这些单独的操作。

我想补充一点,即使您的数据对于主内存来说太大,您仍然可以通过选择将数据保留在磁盘上来使用 Spark。虽然这样做会放弃内存中处理的优势,但您仍然可以从 DAG 执行优化中受益。

Quora 上的一些内容丰富的答案: herehere .

关于mapreduce - 为什么 Spark 比 Hadoop MapReduce 更快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32572529/

相关文章:

python - Spark : pyspark crash for some datasets - ubuntu

Hadoop 每个文件的 block 大小

java - Hadoop Reducer中的多个for-each循环

hadoop - 如何在 Hadoop Mapreduce 作业中访问分布式缓存?

sql - 为每个导致效率问题的键找到最小值

java - Spark SQL RowFactory 返回空行

java - 为什么 reducer 在我的情况下不能正常工作?

apache-spark - 连接到 VM 上运行的 Spark

apache-spark - Spark 二级聚合

scala - Spark - scala - 使用覆盖模式将数据帧保存到表中