1.1 Spark简介与发展
大部分企业习惯用Hadoop去分析数据集,选择Hadoop框架的原因是由于它的编程基于MapReduce编程模型,于此同时,它提供了一个scalable(扩展性)、flexible(兼容性) 、fault-tolerant(容错性) 、cost effective(经济有效)的计算解决方案。就查询和运行之间的等待时间而言,当前考虑的主要问题是去维护处理大数据集的速度。
Spark是由Apache软件基金会推出,Spark出现时为了提高Hadoop处理大数据的速度。但与传统概念相反的是,Spark不是Hadoop的改进版,它不依赖Hadoop,因为spark有自己的群管理器。Hadoop仅仅是Spark实现的一种方法。
Spark使用Hadoop有以下两种方式:存储(storage)和处理(processing)。由于Spark有自己的集群计算管理器,因此它用Hadoop的目的仅仅是为了存储。
Spark是一个轻量级的集群计算基数,设计它的目的是为了更快的计算。它基于Hadoop的MapReduce而且扩展了MapReduce的模型,为了将MapReduce更有效地用于多种类型的计算,其包括交互式查询和流处理。
Spark设计的目的是为了覆盖更大的工作负载范围,例如批处理应用程序、迭代算法、交互查询和流媒体。除了支持所在各自的系统中的工作负载,它还减轻了维护单独的工具的管理负担。
Spark是在2009年在加州大学伯克利分校的AMPLab由马太·扎哈里亚开发Hadoop子项目之一。2010年在BSD许可下,它是开源的。在2013年,它被捐赠给Apache Software Foundation,现在的Apache Spark已经成为一个顶级Apache项目。