简介:本文详细介绍了Apache Spark在单机环境下的完整部署流程,包括系统要求、安装步骤、配置优化以及常见问题解决方案,帮助开发者快速搭建本地开发测试环境。
Apache Spark作为新一代大数据处理框架,其单机部署模式(Local Mode)是开发者入门和本地测试的首选方案。与分布式集群部署相比,单机部署具有配置简单、资源消耗低、调试方便等显著优势。典型的应用场景包括:算法原型开发、小规模数据验证、教学演示等。
在单机部署中,Spark的主要组件运行在单个JVM进程中:
local[*]
线程池配置项 | 最低要求 | 推荐配置 |
---|---|---|
CPU核心 | 2核 | 4核+ |
内存 | 4GB | 8GB+ |
磁盘空间 | 10GB | 50GB+ |
java -version
)
# 下载Spark(以3.3.1为例)
wget https://archive.apache.org/dist/spark/spark-3.3.1/spark-3.3.1-bin-hadoop3.tgz
# 解压并设置环境变量
tar -xzf spark-3.3.1-bin-hadoop3.tgz
mv spark-3.3.1-bin-hadoop3 /opt/spark
echo 'export SPARK_HOME=/opt/spark' >> ~/.bashrc
echo 'export PATH=$PATH:$SPARK_HOME/bin' >> ~/.bashrc
source ~/.bashrc
编辑$SPARK_HOME/conf/spark-env.sh
:
# 设置JVM参数
export SPARK_DRIVER_MEMORY=2g
export SPARK_EXECUTOR_MEMORY=4g
# 指定本地线程数
export SPARK_WORKER_CORES=4
# Scala版本
spark-shell --master local[4]
# Python版本
pyspark --master local[4]
val data = 1 to 10000
val distData = spark.sparkContext.parallelize(data)
println(distData.reduce(_ + _))
预期输出应显示50005000
的计算结果。
# 在spark-defaults.conf中添加:
spark.local.dir /tmp/spark-temp
spark.sql.shuffle.partitions 8
症状:java.lang.OutOfMemoryError
解决方案:
SPARK_DRIVER_MEMORY
值cache()
时添加存储级别:MEMORY_AND_DISK_SER
错误信息:Failed to bind to /127.0.0.1:4040
处理方法:
export SPARK_MASTER_WEBUI_PORT=4041
pip install jupyter findspark
jupyter notebook
在Notebook中初始化:
import findspark
findspark.init('/opt/spark')
示例:读取本地CSV文件
val df = spark.read
.option("header", "true")
.csv("file:///path/to/data.csv")
conf
目录和作业脚本spark-submit --version
验证兼容性通过本文的详细指导,开发者可以快速构建稳定的Spark单机环境,为后续的大数据开发工作奠定坚实基础。建议定期查看Spark官方文档(https://spark.apache.org/docs/latest/)获取最新最佳实践。