1.1 Spark 是什么
Apache Spark 是一种令人兴奋的新技术,它迅速取代Hadoop 的MapReduce 作为首选大数据处理平台。
Hadoop 是一个开源的,分布式的Java 计算框架,由Hadoop 分布式文件系统(HDFS)和MapReduce 的执行引擎组成。 Spark 类似于Hadoop,它是一个分布式通用计算平台。但Spark 的独特设计,允许在内存中保存大量的数据,提供了巨大的性能改进。 Spark 程序的速度可以比MapReduce 快100倍。
Spark 最初是在Berkeley 的AMPLab 由Matei Zaharia 构思的,他与他的导师Ion Stoica,以及Reynold Xin,Patrick Wendell,Andy Konwinski 和Ali Ghodsi 一起创办了Databricks。Spark是开源的,Databricks是Apache Spark 的主要力量,贡献了Spark 的75%以上的代码。它还提供Databricks Cloud,一种基于Apache Spark 的大数据分析的商业产品。
通过使用Spark 的优雅的API和运行时架构,您可以以类似于编写本地方式的方式编写分布式程序。 Spark的集合抽象出了这样一个事实,即它们有可能引用分布在大量节点上的数据。 Spark 还允许您使用函数编程方法,这是与数据处理任务完美匹配的。
通过支持Python,Java,Scala和最近的R,Spark对大量用户开放:传统上支持Python和R的科学社区,仍然广泛的Java社区,以及使用越来越多流行的Scala,它提供了在Java虚拟机(JVM)上的功能编程。
最后,Spark在单一框架中结合了用于批处理编程,实时数据处理功能,类似SQL的结构化数据处理,图形算法和机器学习的MapReduce类功能。这使它成为一个一站式的大部分大数据的需求。所以说,难怪Spark 是当今最繁忙,发展最快的Apache软件基金会项目之一。
但有些应用程序不适合Spark。由于其分布式架构,Spark 必然会给处理时间带来一些开销。这种开销在处理大量数据时可以忽略不计,但是如果你有一个数据集可以由单个机器(最近这变得越来越可能)处理,使用一些其他框架为这种计算优化可能会更有效。此外,Spark不是考虑到在线事务处理(OLTP)应用程序(快速,众多,原子事务)。它更适合在线分析处理(OLAP):批处理作业和数据挖掘。
↧