
问答社区
Apache Spark – 用于大规模数据处理的统一分析引擎通用计算图的优化引擎
Spark是一个用于大规模数据处理的统一分析引擎。它提供 Scala、Java、Python 和 R 中的高级 API,以及支持用于数据分析的通用计算图的优化引擎。它还支持一组丰富的高级工具,包括用于 SQL 和 DataFrames 的 Spark SQL、用于 pandas 工作负载的 Spark SQL 上的 pandas API、用于机器学习的 MLlib、用于图形处理的 GraphX 以及用于流处理的 Structured Streaming。
您可以在项目网页上找到最新的 Spark 文档,包括编程指南。此自述文件仅包含基本设置说明。
Spark 是使用Apache Maven构建的。要构建 Spark 及其示例程序,请运行:
./build/mvn -DskipTests clean package
(如果您下载了预构建的软件包,则无需执行此操作。)
更详细的文档可从项目站点 “Building 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 的概述,请参阅在线文档中的配置指南。