下载中
从项目网站的 下载页面 获取 Spark。此文档适用于 Spark 版本 3.5.3。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 的平台上运行。这应该包括 x86_64 和 ARM64 上的 JVM。它可以很容易地在一台机器上本地运行——您只需在系统
PATH
中安装
java
,或者
JAVA_HOME
环境变量指向 Java 安装目录。
Spark 在 Java 8/11/17、Scala 2.12/2.13、Python 3.8+ 和 R 3.5+ 上运行。 在 Spark 3.5.0 版本中,Java 8 版本 8u371 之前的支持已被弃用。 使用 Scala API 时,应用程序必须使用与 Spark 编译时相同版本的 Scala。 例如,当使用 Scala 2.13 时,使用为 2.13 编译的 Spark,并且代码/应用程序也应为 Scala 2.13 编译。
对于 Java 11,设置
-Dio.netty.tryReflectionSetAccessible=true
是 Apache Arrow 库所必需的。这可以防止出现
java.lang.UnsupportedOperationException: sun.misc.Unsafe or java.nio.DirectByteBuffer.(long, int) not available
错误,当 Apache Arrow 在内部使用 Netty 时。
运行示例和Shell
Spark 附带了几个示例程序。Python、Scala、Java 和 R 的示例位于
examples/src/main
目录中。
要在Python解释器中以交互方式运行Spark,请使用
bin/pyspark
:
./bin/pyspark --master "local[2]"
提供了用Python编写的示例应用程序。,例如:
./bin/spark-submit examples/src/main/python/pi.py 10
要运行Scala或Java的示例程序,请在顶级Spark目录中使用
bin/run-example
。(在后台,这会调用更通用的
spark-submit
脚本
来启动应用程序)。例如,
./bin/run-example SparkPi 10
您还可以通过修改过的 Scala shell 以交互方式运行 Spark。这是学习该框架的好方法。
./bin/spark-shell --master "local[2]"
选项
--master
指定
分布式集群的主 URL
,或
local
以在本地以一个线程运行,或
local[N]
以本地运行 N 个线程。你应该从使用
local
开始进行测试。要查看完整的选项列表,请使用
--help
选项运行 Spark shell。
自1.4版本以来,Spark提供了一个
R API
(仅包含DataFrame API)。
要在R解释器中交互式运行Spark,请使用
bin/sparkR
:
./bin/sparkR --master "local[2]"
还提供了R中的示例应用程序。例如:
./bin/spark-submit examples/src/main/r/dataframe.R
使用Spark Connect在任何地方运行Spark客户端应用程序
Spark Connect 是在 Spark 3.4 中引入的一种新的客户端-服务器架构,它解耦了 Spark 客户端应用程序,并允许远程连接到 Spark 集群。客户端和服务器之间的分离使得 Spark 及其开放生态系统可以从任何地方利用,并嵌入到任何应用程序中。在 Spark 3.4 中,Spark Connect 为 PySpark 提供了 DataFrame API 支持,并在 Scala 中支持 DataFrame/Dataset API。
要了解更多关于 Spark Connect 及其使用方式,请参阅 Spark Connect 概述 。
在集群上启动
Spark 集群模式概述 解释了在集群上运行的关键概念。Spark 可以单独运行,也可以在多个现有的集群管理器上运行。目前提供几种部署选项:
- Standalone Deploy Mode : 在私有集群上部署Spark的最简单方法
- Apache Mesos (已弃用)
- Hadoop YARN
- Kubernetes
从这里去哪里
编程指南:
- 快速入门 : Spark API 的简要介绍;从这里开始!
- RDD 编程指南 : Spark 基础概述 - RDD(核心但老旧的 API)、累加器和广播变量
- Spark SQL、数据集和数据框 : 使用关系查询处理结构化数据(比 RDD 更新的 API)
- 结构化流处理 : 使用关系查询处理结构化数据流(使用数据集和数据框,比 DStreams 更新的 API)
- Spark 流处理 : 使用 DStreams 处理数据流(旧 API)
- MLlib : 应用机器学习算法
- GraphX : 处理图形
- SparkR : 在 R 中使用 Spark 处理数据
- PySpark : 在 Python 中使用 Spark 处理数据
- Spark SQL CLI : 在命令行中使用 SQL 处理数据
API 文档:
- Spark Scala API (Scaladoc)
- Spark Java API (Javadoc)
- Spark Python API (Sphinx)
- Spark R API (Roxygen2)
- Spark SQL,内置函数 (MkDocs)
部署指南:
- 集群概述 : 运行在集群上的概念和组件的概述
- 提交应用程序 : 打包和部署应用程序
-
部署模式:
- 亚马逊 EC2 : 让您在大约 5 分钟内在 EC2 上启动集群的脚本
- 独立部署模式 : 快速启动独立集群,无需第三方集群管理器
- Mesos : 使用 Apache Mesos 部署私有集群
- YARN : 在 Hadoop NextGen (YARN) 上部署 Spark
- Kubernetes : 在 Kubernetes 上部署 Spark
其他文档:
- 配置 : 通过其配置系统定制Spark
- 监控 : 跟踪应用程序的行为
- 调整指南 : 优化性能和内存使用的最佳实践
- 作业调度 : 在Spark应用程序之间和内部调度资源
- 安全 : Spark安全支持
- 硬件配置 : 集群硬件的建议
- 与其他存储系统的集成:
- 迁移指南 : Spark组件的迁移指南
- 构建Spark : 使用Maven系统构建Spark
- 为Spark贡献
- 第三方项目 : 相关的第三方Spark项目
外部资源: