有人可以使用字数统计示例解释一下为什么 Spark 比 MapReduce 更快吗?
最佳答案
bafna 的回答提供了故事的内存方面,但我想补充另外两个重要事实:DAG 和生态系统
- Spark 使用“惰性求值”来形成连续计算阶段的有向无环图 (DAG)。通过这种方式,可以优化执行计划,例如最大限度地减少数据的混洗。相反,这应该在 MapReduce 中通过调整每个 MR 步骤来手动完成。 (如果你熟悉RDBMS中的执行计划优化或者Apache Tez的DAG式执行,会更容易理解这一点)
- Spark 生态系统已经建立了一个多功能组件堆栈来处理 SQL、ML、Streaming、Graph Mining 任务。但在 hadoop 生态系统中,您必须安装其他软件包才能完成这些单独的操作。
我想补充一点,即使您的数据对于主内存来说太大,您仍然可以通过选择将数据保留在磁盘上来使用 Spark。虽然这样做会放弃内存中处理的优势,但您仍然可以从 DAG 执行优化中受益。
关于mapreduce - 为什么 Spark 比 Hadoop MapReduce 更快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32572529/