Spark概述
Apache Spark是一个快速的通用集群计算系统。它提供Java,Scala,Python和R的高级API,以及支持常规执行图的优化引擎。它还支持一组丰富且更高级别的工具,包括用于SQL和结构化数据的处理的SparkSQL,用于机器学习的MLlib,用于图形处理的GraphX和Spark Streaming。
下载
从项目网站的下载页面中获取Spark 。本文档针对Spark版本2.2.0。Spark将Hadoop的客户端库用于HDFS和YARN。下载已预先打包为一些流行的Hadoop版本。用户还可以下载“免费的Hadoop”二进制文件,并通过扩展Spark的classpath在任何Hadoop版本上运行Spark 。Scala和Java用户可以使用其Maven坐标将Spark包含在他们的项目中,将来Python用户还可以从PyPI安装Spark。
如果您想从源代码构建Spark,请访问Building 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.2.0使用Scala 2.11。您将需要使用兼容的Scala版本(2.11.x)。
请注意,自Spark 2.2.0起已删除了对Java 7,Python 2.6和2.6.5之前的旧Hadoop版本的支持。
请注意,从Spark 2.1.0开始不支持Scala 2.10,并且在Spark 2.3.0中可能会删除它。
运行示例和Shell脚本
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
用来指定分布式集群的 主URL,local
用来使用一个线程在本地运行,或使用N个线程在本地运行local[N]
。
您应该先从local
开始进行测试 。
Spark还提供了Python API。要在Python解释器中交互式运行Spark,请使用 bin/pyspark
:
./bin/pyspark --master local[2]
Python中还提供了示例应用程序。例如,
./bin/spark-submit examples/src/main/python/pi.py 10
从1.4开始,Spark还提供了实验性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既可以单独运行,也可以在多个现有集群管理器上运行。当前,它提供了几种部署选项:
- Standalone |独立部署模式:在私有集群上部署Spark的最简单方法
- Apache Mesos
- Hadoop YARN
接下来
编程指南:
- 快速入门:Spark API快速入门;从这里开始!
- Spark编程指南:以所有受支持的语言(Scala,Java,Python,R)详细介绍Spark
- 基于Spark构建的模块:
- Spark Streaming:处理实时数据流
- Spark SQL, Datasets(数据集), and DataFrames(数据框):支持结构化数据和关系查询
- MLlib:内置的机器学习库
- GraphX:Spark的新图形处理API
API文件:
部署指南:
- 集群概述:在集群上运行时的概念和组件概述
- 提交应用程序:打包和部署应用程序
- 部署方式:
- Amazon EC2:可使您在大约5分钟内在EC2上启动集群的脚本
- 独立部署模式:无需第三方集群管理器即可快速启动独立集群
- Mesos:使用Apache Mesos部署私有集群
- YARN:在Hadoop NextGen(YARN)之上部署Spark
- Kubernetes(实验性):在Kubernetes之上部署Spark
其他文件:
- 配置:通过其配置系统自定义Spark
- 监视:跟踪应用程序的行为
- 调优指南:优化性能和内存使用的最佳做法
- 作业调度:在Spark应用程序之间和内部调度资源
- 安全性:Spark安全性支持
- 硬件配置:有关群集硬件的建议
- 与其他存储系统集成:
- 构建Spark:使用Maven系统构建Spark
- 为Spark贡献
- 第三方项目:相关的第三方Spark项目
外部资源: