从Hadoop MapReduce到Spark

Posted liujian-8492

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从Hadoop MapReduce到Spark相关的知识,希望对你有一定的参考价值。

回顾MapReduce的计算过程

技术分享图片

Spark对比MapReduce

Spark是借鉴了MapReduce的思想并在其基础上发展起来的,继承了其分布式计算的优点并改进其缺陷,但两者也有不少的差异如下:

1.spark更快,spark把运行的之间数据存放在内存,迭代计算效率高;mapreduce的之间结果需要落地,保存到磁盘,会产生大量IO操作,影响性能。

2.spark容错性高,通过弹性分布式数据集RDD来实现高效容错,某一部分丢失或出错,可通过计算流程的血缘关系来重建;而mapreduce只能重新计算,成本较高。

3.spark更加通用,提高了丰富的算子(如Transformation和Action),还有流计算Streaming和图计算GraphX等;而mapreduce只有map和reduce两种操作,并不是所有的问题都可以简单地分成map和reduce两步模型来处理。

4.spark采用的是多线程,任务都在一个进程中有利于内存共享,但容易产生资源竞争,难以细粒度地控制资源占用;mapreduce是多进程,进程启动时间要比线程慢,时效不高,但比spark更稳定,值适合批处理操作。

技术分享图片

 最终总结:

spark生态更为丰富,功能更强大,性能更佳,使用范围广;mapreduce更简单,稳定性好,适合长期后台运行,适合离线海量数据(挖掘)处理。

以上是关于从Hadoop MapReduce到Spark的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse远程提交MapReduce任务到Hadoop集群

hadoop|计算框架从MapReduce1.0到Yarn

Hadoop Mapreduce中shuffle 详解

从Hadoop框架与MapReduce模式中谈海量数据处理(含淘宝技术架构)

走进大数据 | 从Hadoop框架与MapReduce模式中谈海量数据处理

从hadoop框架与MapReduce模式中谈海量数据处理