Spark与Hadoop对比

一、运行速度方面:

Spark把中间数据放到内存中,迭代运算效率高。

Hadoop MapReduce将计算结果保存到磁盘上,这样会影响整体速度,而Spark支持DAG图的分布式并行计算的编程框架,减少了迭代过程中数据的落地,提高了处理效率。

二、容错方面:

Spark引进了弹性分布式数据集RDD 的概念,它是分布在一组节点中的只读对象集合,这些集合是弹性的,如果数据集一部分丢失,则可以数据衍生过程对它们进行重建。另外在RDD计算时可以通过CheckPoint来实现容错。

对于Hadoop来说也有容错机制,Hadoop2.0中引入了YARN资源管理组件,以及基于ZooKeeper组件,使得Hadoop同样具有一定的容错性。数据方面使用HDFS的容错机制保证数据完整性。

三、编程方面:

Spark提供的数据集操作类型有很多种,大致分为:转换操作和行动操作两大类,即对RDD的操作,RDD相关操作较多,这里不做表述。此外各个处理节点之间的通信模型不再像Hadoop只有Shuffle一种模式,用户可以命名、物化,控制中间结果的存储、分区等。

MapReduce编程方面操作就比较单一,总的来说只有Map和Reduce两个阶段。