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一种模型,用户可以命名、物化、控制中间结果的存储、分区等。