注:
1. 本文链接中,包含[]的为已翻译的文档链接,不包含的为官方文档链接。
2. 涉及到编程语言的部分,以翻译Scala的部分为主
Spark概述
Apache Spark是一个快速的,通用的集群计算系统。在Java,Scala,Python和R语言中提供了高层API,并提供一个支持一般图形计算的优化引擎。Spark支持一个丰富的高层工具集,包括Spark SQL用于SQL和结构化数据处理,MLLib用于机器学习,GraphX用于图处理和Spark Streaming。
下载
从官网下载页面获取Spark。本文档适用于Spark 2.1.0版本。Spark为使用HDFS和YARN而需要用到Hadoop客户端库。下载包是为适配主流Hadoop版本预先打包好的。用户还可以下载"Hadoop free"二进制文件,然后通过配置Spark的classpath在任意版本的Hadoop中运行Spark。Scala和Java用户可以使用maven cooridnates在项目中包含Spark。将来Python用户也可以从PyPI中安装Spark。
如果想要从源码编译Spark,访问构建Spark。
Spark可以在Windows和类UNIX系统(如Linux,Mac OS)上运行。Spark很容易在一台机器上本地运行——你需要做的就是在系统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)。
请注意,从Spark 2.0.0开始,对Java 7和Python 2.6的支持已弃用,从Spark 2.1.0开始,对Scala 2.10和Hadoop 2.6之前版本的支持已弃用,在Spark 2.2.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
选项指定了分布式集群的master URL,local
以单线程在本地运行,local[N]
以N个线程在本地运行。你应该首先使用local
来进行测试。完整的选项列表,可使用--help
选项来运行Spark。
Spark也提供了Python API。要在Python解释器中以交互方式运行Spark,使用bin/pyspark
:
./bin/pyspark --master local[2]
Spark也提供了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]
Spark也提供了R语言的示例应用程序,例如,
./bin/spark-submit examples/src/main/r/dataframe.R
在集群上运行
Spark集群模式概述解释了在集群上运行Spark的关键概念。Spark可以独立运行,或者在多个现有的集群管理器上运行。目前提供了集中部署选项:
- Standalone Deploy Mode:在私有集群上部署Spark最简单的方法
- Apache Mesos
- Hadoop YARN
从这里开始
编程指南:
- [Quick Start]:Spark的快速介绍,从这开始吧!
- [Spark Programming Guide]:Spark在所有支持语言(Scala,Java,Python,R)中的详细概述。
- 构建在Spark上的模块:
- Spark Streaming:处理实时数据流
- Spark SQL, Datasets, and DataFrames:支持结构化数据和关系查询
- MLlib:内置的机器学习库
- GraphX:Spark用于图形处理的新API
API文档:
- Spark Scala API (Scaladoc)
- Spark Java API (Javadoc)
- Spark Python API (Sphinx)
- Spark R API (Roxygen2)
部署指南:
- 集群概述:在集群运行时的概念和组件概述
- 提交应用程序:打包和部署应用程序
- 部署模式:
- Amazon EC2:让你在5分钟之内在EC2上启动集群的脚本
- Standalone Deploy Mode:不使用第三方集群管理器的情况下快速启动独立集群
- Mesos:使用Apache Mesos部署一个私有集群
- YARN:在Hadoop NextGen (YARN)上部署Spark
其它文档
- 配置:通过配置系统定制Spark
- 监控:跟踪你的应用程序的行为
- 优化指南:优化性能和内存使用的最佳实践
- 任务调度:在应用程序内和跨应用程序调度资源
- 安全性:Spark的安全性支持
- 硬件配置:对集群硬件配置的建议
- 与其它存储系统集成
- 构建Spark:使用Maven系统来构建Spark
- 给Spark做贡献
- 第三方项目:相关的第三方Spark项目
外部资源
- Spark主页
- Spark社区:资源,包括一些当地的聚会
- StackOverflow tag apache-spark
- 邮件列表:可以在这里问Spark的问题
- AMP Camps:在加州大学伯克利分校的一系列训练营,关于Spark,Spark Streaming,Mesos以及更多内容的特色演讲和练习。视频,幻灯片和练习可以在网上免费获取。
-
代码示例:可以在Spark(Scala, Java, Python, R)的
examples
子文件夹中获取更多示例。
网友评论