Windows 下搭建 Spark
版本选择
Spark 部署模式分为本地单机(local)和集群模式,本地单机模式常用于本地开发程序与调试。集群模式又分为 Standalone 模式、Yarn 模式、Mesos 模式
通过测试发现,以下版本组合报错信息最少
组件 | 版本 |
---|---|
Spark | 3.2.2 |
Hadoop | 3.3.1 |
Scala | 2.12.15 |
JDK | 1.8 |
Spark 依赖库
Spark 3.2.2
的依赖库版本如下:
依赖库 | 版本 |
---|---|
Scala | 2.12.15 |
Hadoop | 3.3.1 |
安装步骤
- 下载安装 JDK,配置
JAVA_HOME
环境变量,将JAVA_HOME/bin
添加至Path
环境变量中。 - 下载安装 Scala,根据具体的操作系统,按照官网推荐的方式安装,无需配置
SCALA_HOME
环境变量。 - 下载安装 Hadoop,配置
HADOOP_HOME
环境变量,将HADOOP_HOME/bin
添加至Path
环境变量中。若在 Windows 上搭建,则还需要根据具体的 Hadoop 版本下载对应的winutils.exe
和hadoop.dll
文件,放入HADOOP_HOME/bin
路径下,以获得在 Windows 上运行 Spark 的支持,避免以下报错信息:1
Exception in thread “main” java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
- 下载安装 Spark,配置
SPARK_HOME
环境变量,将SPARK_HOME/bin
添加至Path
环境变量中。进入 Spark 目录下的 conf 子目录下,根据需要修改log4j.properties
等配置文件。log4j.properties
常见的配置如下:1
2
3
4
5# 在终端输出 WARN 级别的日志,避免输出过多日志,影响查看
log4j.rootCategory=WARN, console
# 避免 ERROR ShutdownHookManager: Exception while deleting Spark temp dir 报错
log4j.logger.org.apache.spark.util.ShutdownHookManager=OFF
log4j.logger.org.apache.spark.SparkEnv=ERROR
安装 PySpark
如果上述安装步骤都已完成,就可以开始使用 Java 或 Scala 开发 Spark 程序了。对于 Python 用户,Spark 也提供了语言支持,只需要在 Spark 安装配置完成后,继续安装 PySpark 就可以使用 Python 开发 Spark 程序了:
- 使用 PyPI 安装
1
pip install pyspark=3.2.2
- 使用 Conda 安装注意: PySpark 的版本需要和 Spark 的版本保持一致,想要了解更多安装详情可以参考官方文档
1
conda install -c conda-forge pyspark=3.2.2
报错解决
- 编码错误通过添加以下环境变量解决:
1
UnicodeDecodeError: 'gbk' codec can't decode byte 0x82 in position 120: illegal multibyte sequence
1
PYTHONIOENCODING=utf8
- 任务运行时报错通过添加以下环境变量解决:
1
org.apache.spark.SparkException: Python worker failed to connect back
1
PYSPARK_PYTHON=python
Windows 下搭建 Spark
https://imaginefish.github.io/blog/2022/09/05/Windows下搭建Spark/