购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 什么是Spark

Apache Spark是一个快速通用的集群计算系统,是一种与Hadoop相似的开源集群计算环境,但是Spark在一些工作负载方面表现得更加优越。它提供了Java、Scala、Python和R的高级API,以及一个支持通用的执行图计算的优化引擎。它还支持高级工具,包括使用SQL进行结构化数据处理的Spark SQL、用于机器学习的MLlib、用于图处理的GraphX,以及用于实时流处理的Spark Streaming。

下面介绍Spark的主要特点。

1.快速

我们已经知道,MapReduce主要包括Map和Reduce两种操作,且将多个任务的中间结果存储于HDFS中。与MapReduce相比,Spark可以支持包括Map和Reduce在内的多种操作,这些操作相互连接形成一个有向无环图(Directed Acyclic Graph, DAG),各个操作的中间数据会被保存在内存中。因此,Spark处理速度比MapReduce更快。

Spark通过使用先进的DAG调度器、查询优化器和物理执行引擎,从而能够高性能地实现批处理和流数据处理。如图2-2所示为逻辑回归算法在Hadoop和Spark上的处理时间的比较,图表左边是Hadoop的处理时间,为110s(秒);图表右边是Spark的处理时间,为0.9s。

图2-2 逻辑回归算法在Hadoop和Spark上的处理时间的比较

2.易用

Spark可以使用Java、Scala、Python、R和SQL快速编写应用程序。

Spark提供了超过80个高级算子(关于算子,在第3章将详细讲解),使用这些算子可以轻松构建并行应用程序,并且可以从Scala、Python、R和SQL的Shell中交互式地使用它们。

3.通用

Spark拥有一系列库,包括SQL和DataFrame、用于机器学习的MLlib、用于图计算的GraphX、用于实时计算的Spark Streaming,可以在同一个应用程序中无缝地组合这些库。

4.到处运行

Spark可以使用独立集群模式运行(使用自带的独立资源调度器,称为Standalone模式),也可以运行在Amazon EC2、Hadoop YARN、Mesos(Apache下的一个开源分布式资源管理框架)、Kubernetes之上,并且可以访问HDFS、Cassandra、HBase、Hive等数百个数据源中的数据。 IhmTwxT56TxTpOgSfQ3ua/JtsK9YAHH1EuDIBnJiTDhDY4GJ1ElWNB1WR1QHeBGg

点击中间区域
呼出菜单
上一章
目录
下一章
×