Apache Spark是一个快速、通用的集群运算系统. 它提供了高等级的API( Scala, Java, Python )使并行运算Job易于编写, 同时为通用图计算提供了一个优化的引擎. 同时提供了一系列的高级工具集包括 Shark (Hive on Spark), MLlib (用于机器学习), GraphX (用于图处理), and Spark Streaming.
Spark在Apache Spark网站的 downloads page 有下. 这个文档用于 Spark 版本0.9.0-incubating.
Spark 在Windows 和UNIX-like 系统(例如. Linux, Mac OS)下均可运行. 确保 java
在你的 PATH下
, 或者 JAVA_HOME
环境变量指向java安装路径.
Spark 内部绑定了Simple Build Tool. 为了编译源码, 到顶级Spark目录运行:
sbt/sbt assembly
就Scala API而言, Spark 0.9.0-incubating 依赖于Scala 2.10. 如果你使用Scala编写程序, 你需要使用兼容的Scala版本 (例如. 2.10.X) – 新的主要版本是不行的. 可以从 scala-lang.org 获得Scala的正确版本.
Spark 自带n多样例程序于 examples
文件夹下. 想要运行样例, 在顶级Spark目录下使用 ./bin/run-example <class> <params>
( bin/run-example
脚本设置了路径和入口). 例如, 使用 ./bin/run-example org.apache.spark.examples.SparkPi local
. 每个样例在没有设置参数时都会打印出使用帮助.
注意:某些带 <master>
参数的样例说明连接的是cluster URL. 可以是 URL for a distributed cluster, 或者 local
在本地单线程运行, 或者local[N]
在本地多线程运行. 你可以使用 local
开始测试.
最后, 你可以交互使用Spark,通过Scala shell的改良版 (./bin/spark-shell
) 或者Python 解释器 (./bin/pyspark
). 这是学习框架的好方法.
Spark的 cluster mode overview 介绍了集群的核心概念. Spark可以独立运行, 也支持一些已有的 cluster managers. 现在提供了如下部署选项:
Spark 使用 Hadoop-client 库以便于同 HDFS 和其他基于 Hadoop的存储系统. 由于HDFS 协议随Hadoop的版本有所不同, 你必须根据使用的集群版本构建对应的 Spark. Spark 默认连接到 Hadoop 1.0.4.你可以在编译时设置 SPARK_HADOOP_VERSION
变量以适应自有版本:
SPARK_HADOOP_VERSION=2.2.0 sbt/sbt assembly
更进一步, 如果搭建 Spark on YARN, 设置 SPARK_YARN
为 true
:
SPARK_HADOOP_VERSION=2.0.5-alpha SPARK_YARN=true sbt/sbt assembly
注意:在Windows下, 只能在单独行设置环境变量, 例如, 设置 SPARK_HADOOP_VERSION=1.2.1
.
Spark (0.8.1) Hadoop 2.2.x (或者更新) 用户可以在本地构建和发布. 参见 Launching Spark on YARN. 由于Hadoop的API并没有向后兼容,所以这是很有必要的.
编程指引:
API文档:
部署指引:
其它文档:
扩展资源:
想获得关于Spark的帮助或者想跟上Spark开发,请注册 user mailing list.
如果你在 San Francisco Bay 地区, 可以定期参加 Spark meetup ,这是与开发者们和使用者们会面的好机会.
最后, 如果你想对Spark贡献代码, 请阅读how to contribute.