Apache Spark 介绍
行业都使用Hadoop广泛地分析他们的数据集。其原因在于Hadoop框架是基于简单的编程模型(MapReduce的),并且它使计算的解决方案,是可扩展的,柔性的,容错和成本效益。在这里,主要关心的是在查询之间的等待时间和等待时间来运行计划的条款处理大型数据集,以保持速度。
Spark是由Apache软件基金会推出了加快的Hadoop计算计算软件的过程。
作为对一个共同的信念,Spark是Hadoop的不是一个修改版本 ,不,真的,依赖于Hadoop的,因为它有自己的集群管理。 Hadoop是只是实施Spark的方式之一。
Spark采用Hadoop的方式有两种-一种是存储和第二个是处理 。由于Spark都有自己的集群管理计算,它使用了Hadoop的只有存储的目的。
Apache Spark
Apache的Spark是一个闪电般快速的集群计算技术,专为快速计算。它是基于在Hadoop MapReduce和它扩展了MapReduce的模型,以有效地将其用于多种类型的计算,其包括交互式查询和流处理。Spark的主要特征是其内存集群计算 ,增加的应用程序的处理速度。
Spark旨在涵盖广泛的工作负载,如批量应用,迭代算法,互动查询和流媒体。除了支持所有这些工作负载在各自的系统,它减少了维护单独的工具的管理负担。
Apache Spark 的演变
Spark是Hadoop的2009年在加州大学伯克利分校的AMPLab由马太·扎哈里亚开发的子项目之一。它是开源的,2010年在BSD许可下。它被捐赠给Apache Software Foundation的2013年,现在的Apache Spark 已经成为从二月2014年一个顶级Apache项目。
Apache Spark 特点
Apache Spark 具有以下特点。
速度 -在磁盘上运行时,Spark有助于运行Hadoop集群的应用程序,高达100倍的速度在内存中,快10倍。这通过减少读/写操作的次数,以磁盘是可能的。它存储在内存中的中间处理数据。
支持多国语言 -Spark提供了在Java中,Scala,或Python内置的API。因此,你可以写在不同的语言的应用程序。Spark配备了80个高层次的经营者进行互动查询。
高级分析 -Spark不仅支持'地图'和'减少'。它也支持SQL查询,流数据,机器学习(ML),和图形的算法。
Spark内置在Hadoop
下图显示了如何Spark可以用Hadoop组件内置三种方式。

有Spark部署三种方式如下面所解释。
单机版-Spark独立部署意味着Spark上占据HDFS(Hadoop分布式文件系统)和空间顶部的地方分配给HDFS,明确。在这里,Spark和MapReduce将并排覆盖在集群中的所有Spark的工作。
Hadoop的纱线 - Hadoop的部署纱手段,简单地说,Spark对成纱运行而无需任何预先安装或root访问权限。它有助于Spark融入的Hadoop生态系统或Hadoop的堆栈。它允许其它组件上叠层的顶部上运行。
在MapReduce的Spark(SIMR) -在MapReduce的Spark来,除了独立部署开展Spark的工作。随着SIMR,用户可以启动Spark和使用它的外壳没有任何管理权限。
Spark组件
下图说明了Spark的不同组件。

Apache的核心Spark
SparkCore是,所有其他的功能是建立在这个基础平台Spark底层一般执行引擎。它提供了内存计算和外部存储系统引用的数据集。
SparkSQL
SparkSQL是Spark核心之上的组件,它引入了一种名为SchemaRDD一个新的数据抽象,它提供了结构化和半结构化数据的支持。
Spark流
Spark流利用Spark核心的快速调度能力,执行流分析的。它在小批量摄取数据和数据的那些小批量进行RDD(弹性分布式数据集)的转换。
MLlib(机器学习库)
MLlib是一个分布式的机器学习框架以上Spark因为分布式基于内存的Spark架构的。据,根据基准,通过对交替最小二乘(ALS)实现的MLlib开发完成的。SparkMLlib是九次快的Apache Mahout中的基于磁盘的Hadoop版本(前亨利马乌获得了Spark接口)。
GraphX
GraphX是在Spark的顶部上的分布式图形处理框架。它提供了用于表达可以通过使用预凝胶抽象API建模用户定义图表图形计算的API。它也提供了这种抽象的优化运行时。