Apache Spark
是一个快速的,多用途的集群计算系统。它提供了Java
,Scala
,Python
和R
的高级API
,以及一个支持通用的执行图计算的优化过的引擎。它还支持一组丰富的高级工具,包括使用SQL
处理结构化数据处理的 Spark SQL
,用于机器学习的 MLlib
,用于图计算的 GraphX
,以及 Spark Streaming
。
Spark中
的安全性默认为OFF
。这可能意味着您很容易受到默认攻击。在下载和运行Spark
之前,请参阅Spark Security
。
从该项目官网的 下载页面 获取Spark
。该文档用于Spark 2.4.5
版本。Spark
可以通过Hadoop client
库使用HDFS
和YARN
。下载一个预编译主流Hadoop
版本比较麻烦。用户可以下载"Hadoop free"的二进制,并且可以通过设置Spark
的classpath
来与任何的Hadoop
版本一起运行Spark
。Scala
和Java
用户可以在他们的工程中通过Maven
的方式引入Spark
,并且在将来Python
用户也可以从PyPI
中安装Spark
。
如果您希望从源码中编译一个Spark
,请访问编译Spark
。
Spark
可以在windows
和unix
类似的系统(例如,Linux
,Mac OS
)上运行。它可以很容易的在一台本地机器上运行 -你只需要安装一个JAVA
环境并配置PATH
环境变量,或者让JAVA_HOME
指向你的JAVA
安装路径
Spark
可运行在Java 8+
,Python 2.7+/3.4+
和R 3.1+
的环境上。针对Scala API
,Spark 2.4.5
使用了Scala 2.12
。您将需要去使用一个可兼容的Scala
版本(2.12.x
)。
请注意,从Spark 2.2.0
起,对Java 7
,Python 2.6
和旧的Hadoop 2.6.5
之前版本的支持均已被删除。自2.3.0
起,对Scala 2.10
的支持被删除。 自Spark 2.4.1
起,对Scala 2.11
的支持已被弃用,将在Spark 3.0
中删除。
Spark
自带了几个示例程序。Scala
,Java
,Python
和R
示例在 examples/src/main
目录中。要运行Java
或Scala
中的某个示例程序,在最顶层的Spark
目录中使用 bin/run-example <class> [params]
命令即可。(这个命令底层调用了 spark-submit
脚本去加载应用程序)。例如,
./bin/run-example SparkPi 10
您也可以通过一个改进版的Scala shell
来运行交互式的Spark
。这是一个来学习该框架比较好的方式。
./bin/spark-shell --master local[2]
该 --master
选项可以指定为针对分布式集群的master URL
,或者 以 local
模式使用1个线程在本地运行,local[N]
会使用N
个线程在本地运行。你应该先使用local
模式进行测试。可以通过–help
指令来获取spark-shell
的所有配置项。Spark
同样支持Python API
。在Python interpreter
(解释器)中运行交互式的Spark
,请使用 bin/pyspark
:
./bin/pyspark --master local[2]
Python
中也提供了应用示例。例如,
./bin/spark-submit examples/src/main/python/pi.py 10
从1.4
开始(仅包含了DataFrames APIs
)Spark
也提供了一个用于实验性的R API
。为了在R interpreter
(解释器)中运行交互式的Spark
,请执行 bin/sparkR
:
./bin/sparkR --master local[2]
R
中也提供了应用示例。例如,
./bin/spark-submit examples/src/main/r/dataframe.R
该Spark
集群模式概述 说明了在集群上运行的主要的概念。Spark
既可以独立运行,也可以在一些现有的Cluster Manager
(集群管理器)上运行。它当前提供了几种用于部署的选项:
Standalone Deploy Mode
:在私有集群上部署Spark
最简单的方式Apache Mesos
Hadoop YARN
Kubernetes