spark是针对于大规模数据处理的统一分析引擎,在Hadoop基础上的改进,基于MapReduce算法实现的分布式计算,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出和结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的map reduce的算法。
spark的优势:
1、高性能:
1)Spark具有hadoopMapReduce所有的优点,MapReduce每次计算的中间结果都会存储到HDFS的磁盘上,而Spark的中间结果可以保存在内存,在内存中进行数据处理。
2)Spark使用最先进的DAG调度程序,查询优化程序和物理执行引擎,实现批量和流式数据的高性能。
2、通用性
Spark是一个通用的引擎,它可以用来完成各种操作,包括SQL查询、文本处理、机器学习等。
3、容错性高
基于“血统”(Lineage)的数据恢复: spark引入了弹性分布式数据集RDD的抽象,它是分布在一组节点中的只读的数据的集合,这些集合是弹性的且是相互依赖的,如果数据集中的一部分的数据发生丢失可以根据“血统”关系进行重建。
4、兼容性强
Spark任务支持多种调度方式包括Yarn、mesos、Standalone等。可通过Spark直接对接大数据生态中Hbase、Hdfs、Kafka等多种数据源。