性能:性能
Spark在内存中处理数据,而MapReduce是经过map和reduce操做在磁盘中处理数据。因此从这方面讲Spark的性能是超过MapReduce的。可是当数据量比较大,没法所有读入内存时,MapReduce就比较有优点。当涉及须要重复读取一样的数据进行迭代式计算的时候,Spark比较有优点;可是当涉及到单次读取,相似ETL操做任务时,适合用MapReduce进行处理。日志
容错:内存
当执行中途失败时,MapReduce会从失败处继续执行,由于它是依赖于硬盘驱动器的。可是Spark就必须从头开始执行,这样MapReduce相对节省了时间。map
应用场景:数据
MapReduce主要是进行离线计算处理,计算一些已存在的数据,好比对已存在的订单或者日志进行分析。而Spark能够应用在一些实时查询和迭代分析的场景,好比像推荐系统。查询