Spark 是一个用于大规模数据处理的统一分析引擎。它提供了 Scala、Java、Python 和 R(已弃用)的高级 API,以及一个支持通用计算图进行数据分析的优化引擎。它还支持一系列丰富的高级工具,包括用于 SQL 和 DataFrame 的 Spark SQL、用于 pandas 工作负载的 Spark 上的 pandas API、用于机器学习的 MLlib、用于图处理的 GraphX,以及用于流处理的 Structured Streaming。
您可以在项目网页上找到最新的 Spark 文档,包括编程指南。此 README 文件仅包含基本的设置说明。
| 分支 | 状态 |
|---|---|
| master | |
| branch-4.1 | |
| branch-4.0 | |
| branch-3.5 | |
Spark 使用 Apache Maven 进行构建。要构建 Spark 及其示例程序,请运行:
./build/mvn -DskipTests clean package
(如果您下载的是预构建的包,则无需执行此操作。)
更详细的文档可在项目站点获取,参见 "构建 Spark"。
有关通用开发技巧,包括使用 IDE 开发 Spark 的信息,请参阅 "有用的开发者工具"。
开始使用 Spark 最简单的方式是通过 Scala shell:
./bin/spark-shell
尝试以下命令,它应该返回 1,000,000,000:
scala> spark.range(1000 * 1000 * 1000).count()
或者,如果您更喜欢 Python,可以使用 Python shell:
./bin/pyspark
并运行以下命令,它同样应该返回 1,000,000,000:
>>> spark.range(1000 * 1000 * 1000).count()
Spark 还在 examples 目录中附带了一些示例程序。要运行其中一个,请使用 ./bin/run-example <class> [params]。例如:
./bin/run-example SparkPi
这将在本地运行 Pi 示例。
您可以在运行示例时设置 MASTER 环境变量,以将示例提交到集群。这可以是 spark:// URL、"yarn" 表示在 YARN 上运行、"local" 表示在本地单线程运行,或 "local[N]" 表示在本地使用 N 个线程运行。如果类在 examples 包中,您也可以使用缩写的类名。例如:
MASTER=spark://host:7077 ./bin/run-example SparkPi
许多示例程序在没有提供参数时会打印使用帮助。
测试首先需要构建 Spark。一旦 Spark 构建完成,可以使用以下命令运行测试:
./dev/run-tests
请参阅关于如何运行模块测试或单个测试的指南。
还有一个 Kubernetes 集成测试,请参阅 resource-managers/kubernetes/integration-tests/README.md。
Spark 使用 Hadoop 核心库与 HDFS 和其他 Hadoop 支持的存储系统通信。由于协议在不同版本的 Hadoop 中发生了变化,您必须针对集群运行的相同版本构建 Spark。
请参考构建文档 "指定 Hadoop 版本并启用 YARN",获取针对特定 Hadoop 发行版(包括针对特定 Hive 和 Hive Thriftserver 发行版)构建的详细指导。
请参考在线文档中的配置指南,了解如何配置 Spark 的概述。
请查阅 Spark 贡献指南,了解如何开始为项目做贡献的信息。