Spark4.2.0的安装和使用指南(2026年10月版本)
内容提要
本指南介绍在 Ubuntu 24.04 上安装与使用 Spark 4.2.0:先安装 Anaconda 获取 Python 3.11 并配置国内镜像源,再下载解压 Spark、配置 spark-env.sh 和 .bashrc 环境变量并验证安装,最后讲解启动 PySpark、用 spark-submit 提交程序,并以 WordCount 为例演示独立应用开发。
延伸解读
环境准备:JDK与Hadoop的前置依赖
文章明确指出,在安装Spark 4.2.0之前,必须先在Ubuntu 24.04中安装JDK 17和Hadoop 3.5.0。这是因为Spark依赖Java运行环境,且需要Hadoop的类库来支持HDFS读写。若跳过此步骤,后续配置spark-env.sh时指定的Hadoop classpath将无效,导致Spark无法访问HDFS。因此,读者应优先完成这两个组件的安装,再按指南操作。
Python版本管理:Anaconda与虚拟环境
Ubuntu 24.04自带的Python 3.7无法满足Spark 4.2.0对Python 3.11+的要求。指南建议通过Anaconda安装Python 3.11,并创建名为pyspark的独立环境。这样做既能避免与系统Python冲突,又能利用conda方便地管理依赖。配置国内镜像源可加速后续包下载。读者需注意,在运行PySpark程序前,务必激活该环境并安装对应版本的PySpark库。
关键配置:spark-env.sh与.bashrc
要让Spark正确读写HDFS,必须在spark-env.sh中设置SPARK_DIST_CLASSPATH,指向Hadoop的classpath。同时,.bashrc中需定义SPARK_HOME、PYSPARK_PYTHON、JAVA_HOME、HADOOP_CONF_DIR和HADOOP_HOME等环境变量,确保Spark能找到Python解释器、Java和Hadoop配置。修改后执行source ~/.bashrc生效。这些配置是Spark与Hadoop协同工作的基础,遗漏可能导致运行失败。
开发与提交:从交互式到独立应用
PySpark交互式环境适合快速测试代码,而生产部署需编写独立应用。文章以WordCount为例,展示了如何用Python编写Spark程序,并通过spark-submit提交。注意,Python程序无需编译打包,但需确保已安装pyspark库。提交时指定--master local[*]可在本地模式运行。读者可参考此流程,将开发好的脚本提交到集群,但需根据实际环境调整master URL和资源参数。
Q&A
Spark 4.2.0 对 Python 版本有什么要求?为什么需要安装 Anaconda?
Spark 4.2.0 要求 Python 版本必须是 3.11 及以上。Ubuntu 24.04 自带的 Python 版本是 3.7,不符合要求,因此需要额外安装 Python 3.11。安装 Anaconda 可以方便地获取 Python 3.11 以及常用的第三方库,并且不会影响系统自带的 Python。
在 Ubuntu 24.04 上安装 Spark 4.2.0 之前需要预先安装哪些软件?
在安装 Spark 4.2.0 之前,需要首先在 Ubuntu 24.04 中安装 JDK 17 和 Hadoop 3.5.0。
如何配置 Spark 的 spark-env.sh 文件?配置后有什么作用?
复制 spark-env.sh.template 为 spark-env.sh,然后在文件第 1 行添加:export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)。配置后 Spark 可以将数据存储到 HDFS 中,也可以从 HDFS 读取数据;如果不配置,Spark 只能读写本地数据。
如何验证 Spark 4.2.0 是否安装成功?
可以运行 Spark 自带的 SparkPi 示例来验证,命令为:cd /usr/local/spark && ./bin/run-example SparkPi。为了快速找到结果,可以使用 grep 过滤:./bin/run-example SparkPi 2>&1 | grep "Pi is roughly",如果输出类似 Pi is roughly 3.14159570797854,则说明安装成功。
如何启动 PySpark 交互式环境?启动后可以做什么?
在 Linux 终端中执行 cd /usr/local/spark 然后 ./bin/pyspark 即可启动 PySpark 交互式环境。不带参数时默认使用 Local[*] 模式。启动后可以在 >>> 提示符后输入 Python 代码进行调试,例如输入 8*2+5 会立即得到结果 21。退出使用 exit()。
如何使用 spark-submit 提交 WordCount 程序?
首先确保已安装 PySpark 类库(conda activate pyspark && pip install pyspark==4.2.0 -i https://pypi.tuna.tsinghua.edu.cn/simple),然后使用命令:/usr/local/spark/bin/spark-submit --master local[*] /usr/local/spark/mycode/WordCount.py 提交运行。执行后会输出类似 Lines with a: 120, Lines with b: 85 的结果。