引入
Spark 是用于处理大数据的集群计算框架 ,与其他大多数数据处理框架不同之处在于 Spark 没有以 MapReduce 作为执行引擎,而是使用它自己的分布式运行环境在集群上执行工作。另外 Spark 与 Hadoop 又紧密集成,Spark 可以在 YARN 上运行,并支持 Hadoop 文件格式及其存储后端(例如 HDFS)。
Spark 最突出的表现在于其能将 作业与作业之间的大规模的工作数据集存储在内存中。这种能力使得在性能上远超 MapReduce 好几个数量级,原因就在于 MapReduce 数据都是从磁盘上加载。根据 Spark 的处理模型有两类应用获益最大,分别是 迭代算法(即对一个数据集重复应用某个函数,直至满足退出条件)和 交互式分析(用户向数据集发出一系列专用的探索性查询) 。
另外 Spark 还因为其具有的 DAG 引擎更具吸引力,原因在于 DAG 引擎可以处理任意操作流水线,并为用户将其转化为单个任务。