搭建Spark开发环境需要安装Java、Scala(可选)、Spark核心包,并配置环境变量,推荐使用IntelliJ IDEA或VS Code配合SBT/Maven构建工具,结合本地测试与集群部署模式提高开发效率,下面分步骤详解配置过程:

环境准备与基础安装
-
Java JDK安装
Spark依赖Java 8/11/17(推荐JDK 11):sudo apt install openjdk-11-jdk # Ubuntu java -version # 验证安装
-
Scala安装(可选)
若使用Scala API,安装Scala 2.12:wget https://downloads.lightbend.com/scala/2.12.18/scala-2.12.18.tgz tar -xzvf scala-2.12.18.tgz export PATH=$PATH:/path/to/scala/bin
-
Spark核心包下载
官网下载Spark 3.5+版本(匹配Hadoop 3.x):wget https://archive.apache.org/dist/spark/spark-3.5.0/spark-3.5.0-bin-hadoop3.tgz tar -xzvf spark-3.5.0-bin-hadoop3.tgz mv spark-3.5.0-bin-hadoop3 /opt/spark
关键配置项设置
-
环境变量配置
编辑~/.bashrc:export SPARK_HOME=/opt/spark export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin export PYSPARK_PYTHON=python3 # 指定Python解释器
-
集群模式选择
- 本地模式(测试用):启动时设置
local[](为CPU核心数) - Standalone集群:配置
conf/workers和conf/spark-env.sh - YARN/K8S模式:需额外配置Hadoop或Kubernetes环境
- 本地模式(测试用):启动时设置
-
日志级别调整
修改conf/log4j2.properties降低输出冗余:
rootLogger.level = WARN
开发工具链搭建
-
IDE推荐配置
- IntelliJ IDEA:安装Scala插件,创建SBT项目,添加依赖:
libraryDependencies += "org.apache.spark" %% "spark-core" % "3.5.0"
- VS Code:使用Metals插件管理Scala项目
- IntelliJ IDEA:安装Scala插件,创建SBT项目,添加依赖:
-
PySpark开发环境
创建虚拟环境并安装PySpark:python -m venv pyspark_env source pyspark_env/bin/activate pip install pyspark==3.5.0 pandas
验证与调试
-
运行示例任务
执行内置PI计算测试:spark-submit --class org.apache.spark.examples.SparkPi --master local[2] $SPARK_HOME/examples/jars/spark-examples_2.12-3.5.0.jar
-
交互式验证
启动Spark Shell:# Scala Shell spark-shell --master local[2] # PySpark Shell pyspark --master local[2]
执行
sc.parallelize(1 to 100).count()检查是否返回100
性能优化技巧
-
内存配置
调整conf/spark-defaults.conf避免OOM:
spark.driver.memory 4g spark.executor.memory 8g spark.sql.shuffle.partitions 200 # 避免少数分区瓶颈 -
数据本地化优化
使用parquet格式并合理分区:df.write.partitionBy("date").parquet("/data/output") -
动态资源分配
在YARN集群启用:spark.dynamicAllocation.enabled true spark.shuffle.service.enabled true
常见问题解决方案
- ClassNotFound异常:
构建时添加provided范围依赖(部署时集群提供):libraryDependencies += "org.apache.spark" %% "spark-sql" % "3.5.0" % "provided"
- 端口冲突:
修改conf/spark-env.sh:export SPARK_MASTER_PORT=7071 export SPARK_WORKER_PORT=7072 - Python依赖分发:
使用spark-submit --py-files dependencies.zip提交第三方库
容器化部署方案
通过Docker快速部署开发环境:
FROM openjdk:11 RUN wget https://archive.apache.org/dist/spark/spark-3.5.0/spark-3.5.0-bin-hadoop3.tgz RUN tar -xzf spark-3.5.0-bin-hadoop3.tgz && mv spark-3.5.0-bin-hadoop3 /spark ENV SPARK_HOME=/spark ENTRYPOINT ["/spark/bin/spark-shell"]
互动讨论:你在Spark环境配置中遇到过哪些棘手问题?如何优化本地开发与集群执行的体验差异?欢迎分享实战经验!
原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/31953.html