spark和hadoop差异

spark是从mapreduce发展过来的,拥有分布式并行计算的能力

运行效率高:

spark是把中间数据放到内存中,并且spark支持DAG图的分布式并行计算的编程框架,减少了迭代过程中数据的落地,提高了处理效率。

而mapreduce的计算结果是保存在磁盘上的,这势必会影响整体速度。

容错性高:

spark引进了弹性分布式数据集RDD的抽象,它是分布在一组节点中的只读对象集合,这些集合是弹性的,如果数据集一部分丢失,则可以根据血统(即允许基于数据衍生过程)对它们进行重建。另外RDD计算时可以通过checkpoint来实现容错,而checkpoint有两种方式:CheckPoint Data 和 Logging The Updates, 用户可以控制采用哪种方式来实现容错。

更加通用:

spark不像hadoop那样只提供了map和reduce两种操作,spark提供的数据集操作类型有很多种,大致分为:Transformations和Actions两大类。另外各个处理节点之间的通信模型不再像hadoop只提供shuffle一种模型,用户可以命名、物化、控制中间结果的存储、分区等。

原文地址:https://www.cnblogs.com/sunyaxue/p/6367185.html