Spark 概述
Apache Spark是一个快速和通用的集群计算系统。它提供Java,scala,Python、R语言的APIs,以及支持一般执行图形的优化引擎。 它还支持一组丰富的高级工具,包括用于SQL和结构化数据处理的Spark SQL,用于机器学习的MLlib,用于图形处理的GraphX和Spark Streaming。
下载
从项目网站的下载页面获取Spark。本文档适用于Spark 2.1.0版本。 Spark使用Hadoop的客户端库用于HDFS和YARN。下载是预先打包的一些流行的Hadoop版本。用户还可以下载“Hadoop free”二进制文件,并通过扩充Spark的类路径,使用任何Hadoop版本运行Spark。 Scala和Java用户可以使用其maven cooridnates在他们的项目中包含Spark,并且在将来Python用户也可以从PyPI安装Spark。
如果你想从源代码编译Spark,请访问Building Spark。
Spark在Windows和类UNIX系统(例如Linux,Mac OS)上运行。它很容易在一台计算机上本地运行 – 所有你需要的是在系统PATH上安装java,或者JAVA_HOME环境变量指向Java安装位置。
Spark运行于Java 7+,Python 2.6 + / 3.4 +和R 3.1+。对于Scala API,Spark 2.1.0使用Scala 2.11。您将需要使用兼容的Scala版本(2.11.x)。
请注意,Java 7和Python 2.6的支持在从Spark 2.0.0已过时,并且对于Scala 2.10和2.6之前的Hadoop版本的支持在Spark 2.1.0中已过时,并且可能会在Spark 2.2.0中被删除。
运行示例和Shell
Spark附带了几个示例程序。 Scala,Java,Python和R示例在 examples/src/ main目录中。 要运行Java或Scala示例程序之一,请在*Spark目录中使用bin / run-example [params]。 (在后台,这将调用更通用的spark提交脚本来启动应用程序)。 例如,
./bin/run-example SparkPi 10
您还可以通过Scala shell的修改版本以交互方式运行Spark。 这是一个学习框架的好方法。
./bin/spark-shell --master local[2]
--master
选项指定分布式集群的master URL,或者本地使用一个线程运行在本地,或者使用local [N]在本地使用N个线程运行。 您应该首先使用local进行测试。 有关选项的完整列表,请运行Spark shell 使用–help选项。
Spark还提供了一个Python API。 要在Python解释器中以交互方式运行Spark,请使用bin / pyspark
:
./bin/pyspark --master local[2]
示例应用程序也在Python中提供。 例如,
./bin/spark-submit examples/src/main/python/pi.py 10
Spark自1.4以来提供了一个实验R API(仅包括DataFrames API)。 要在R解释器中以交互方式运行Spark,请使用bin / sparkR
:
./bin/sparkR --master local[2]
示例应用也在R中提供。例如,
./bin/spark-submit examples/src/main/r/dataframe.R
在群集上运行
Spark集群模式概述解释了在集群上运行的关键概念。 Spark可以单独运行,也可以通过多个现有集群管理器运行。 它目前提供了几个部署选项:
- 独立部署模式:在私有集群上部署Spark的最简单方法
- Apache Mesos
- Hadoop YARN
从哪里入手
编程指南
- 快速入门:快速介绍Spark API; 从这里开始!
- Spark编程指南:Spark所有支持的语言(Scala,Java,Python,R)
- 基于Spark的模块:
- Spark Streaming:处理实时数据流
- Spark SQL,Datasets和DataFrames:支持结构化数据和关系查询
- MLlib:内置机器学习库
- GraphX:Spark的新图形处理API
API Docs
- Spark Scala API (Scaladoc)
- Spark Java API (Javadoc)
- Spark Python API (Sphinx)
- Spark R API (Roxygen2)
部署指南
- 集群概述:在集群上运行的组件概述
- 提交应用程序:打包和部署应用程序
- 部署模式:
- Amazon EC2:允许您在大约5分钟内在EC2上启动集群的脚本
- 独立部署模式:快速启动独立集群,无需第三方集群管理器
- Mesos:使用Apache Mesos部署私有集群
- YARN:在Spark上部署Hadoop的下一代(YARN)
其他文档
- 配置:- 通过其配置系统定制Spark
- 监视:跟踪应用程序的行为
- 优化指南:优化性能和内存使用的最佳做法
- 作业调度:在Spark应用程序内部和跨程序调度资源
- 安全:Spark安全支持
- 硬件配置:针对集群硬件的建议
- 与其他存储系统集成:
- 编译Spark:使用Maven系统构建Spark
- 贡献给Spark
- 第三方项目:相关第三方Spark项目