如何在Linux中安装并配置Spark Linux搭建大数据计算环境的方法

老萱吖_5683

老萱吖_5683

2026-05-27

307人浏览

原创

spark在linux上跑起来的核心是:java版本匹配(jdk 8或11)、spark_home与path正确配置($spark_home/bin须置path最前)、spark-env.sh至少配置java_home、spark_driver_memory和pyspark_python三项;缺一即导致spark-shell启动失败或功能异常。

如何在linux中安装并配置spark linux搭建大数据计算环境的方法

Spark 在 Linux 上能跑起来,核心就三件事:Java 版本对、环境变量通、配置文件不空着。其他花哨步骤都是在这基础上的延伸,没这三条,spark-shell 一启动就报错。

Java 版本必须是 8 或 11,别信“高版本兼容”

Spark 3.3+ 官方明确推荐 JDK 11,但 Spark 3.2 及更早版本在 JDK 17+ 上会直接抛 NoClassDefFoundError;而 JDK 8 是所有 Spark 2.x 和 3.x 的兜底选择。实际部署中发现,Ubuntu 22.04 默认装的是 OpenJDK 11,但 CentOS 7 默认只有 OpenJDK 8——别急着升级,先确认你用的 Spark 版本对应关系:

  • Spark 3.5.x → 推荐 openjdk-11-jdk(Ubuntu)或 java-11-openjdk-devel(CentOS)
  • Spark 3.2.x → 必须用 openjdk-8-jdk,否则 spark-submit 启动时卡在 ClassNotFoundException: org.apache.spark.deploy.SparkSubmit
  • 验证方式不是只看 java -version,还要执行:echo $JAVA_HOME,确保它指向真实 JDK 根目录(如 /usr/lib/jvm/java-11-openjdk-amd64),而不是 /usr/bin/java 这种软链接

SPARK_HOME 和 PATH 必须写进 ~/.bashrc,且顺序不能错

很多用户把 export SPARK_HOME=/opt/spark 写对了,却忘了加 $SPARK_HOME/bin 到 PATH,结果终端认不出 spark-shell;更隐蔽的问题是:如果 HADOOP_HOME/bin 在 PATH 里排在 $SPARK_HOME/bin 前面,某些 Hadoop 自带的 hadoop 命令会覆盖 Spark 的同名脚本,导致 spark-submit --master local 报 UnknownHostException: localhost。

正确写法(追加到 ~/.bashrc 底部):

export SPARK_HOME=/opt/spark
export PATH=$SPARK_HOME/bin:$PATH
export PYSPARK_PYTHON=python3

注意:$SPARK_HOME/bin 必须在 $PATH 最前面;source ~/.bashrc 后,立刻验证:which spark-shell 输出应为 /opt/spark/bin/spark-shell。

Zynq Linux Hardware Debug
Zynq Linux Hardware Debug

Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。

下载

spark-env.sh 不配等于裸奔,至少填三项

$SPARK_HOME/conf/spark-env.sh 是单机模式下最容易被跳过的文件。不配它,spark-shell 能启动,但一读 HDFS 就连不上,PySpark 加载本地文件也慢得反常。关键三行必须手动补上:

  • export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64(路径按你系统实际输出调整)
  • export SPARK_DRIVER_MEMORY=2g(低于 4GB 内存机器建议设成 1g,否则 shell 启动卡住)
  • export PYSPARK_PYTHON=python3(如果 Python 3 不在默认路径,写全路径如 /usr/bin/python3)

特别注意:不要复制 spark-env.sh.template 后就以为完事——那个模板文件是空的,直接运行等于没配。另外,如果已装 Hadoop,还需加一行:export SPARK_DIST_CLASSPATH=$(/opt/hadoop/bin/hadoop classpath),否则 sc.textFile("hdfs://...") 会报 ClassNotFoundException: org.apache.hadoop.fs.FileSystem。

验证时别只看 “Pi is roughly”,要测真实路径读写

跑 bin/run-example SparkPi 10 成功,只能说明 JVM 和 Spark core 能通,不代表你的环境真 ready。容易被忽略的硬伤点:

  • 用 spark-shell 执行:sc.textFile("file:///opt/spark/README.md").count() —— 测试本地文件系统路径解析是否正常
  • 如果装了 Hadoop,再试:sc.textFile("hdfs://localhost:9000/test.txt").count() —— 确认 SPARK_DIST_CLASSPATH 生效
  • PySpark 下跑:pyspark --master local[2],然后 spark.read.csv("file:///tmp/data.csv").count() —— 验证 Python 层和 DataFrame API 是否可用

最后提醒:Spark 启动日志默认输出到 $SPARK_HOME/logs/,遇到黑屏或卡顿,第一反应不是重装,而是 tail -f $SPARK_HOME/logs/spark-*-org.apache.spark.deploy.master.Master-*.out 看实时错误——90% 的“启动失败”,其实就差一行 JAVA_HOME 没导对。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux 大数据

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
大数据分析工具有哪四个
大数据分析工具有哪四个

大数据分析的四个工具分别是rapidminer、Hpcc、Hadoop和Pentaho bi。大数据分析用于从各种来源生成的原始数据中提取有价值的数据。这些数据帮助我们获得有意义的见解、隐藏的模式、未知的相关性、市场趋势等等,具体取决于行业。大数据分析的主要动机是提供有价值的见解,以便为未来做出更好的决策。php中文网为大家带来了大数据分析的相关教程、以及相关文章等内容,供大家免费下载使用。

2023.06.21

4936

5

Java 大数据处理基础(Hadoop 方向)
Java 大数据处理基础(Hadoop 方向)

本专题聚焦 Java 在大数据离线处理场景中的核心应用,系统讲解 Hadoop 生态的基本原理、HDFS 文件系统操作、MapReduce 编程模型、作业优化策略以及常见数据处理流程。通过实际示例(如日志分析、批处理任务),帮助学习者掌握使用 Java 构建高效大数据处理程序的完整方法。

2025.12.08

1249

12

大数据专业学习教程
大数据专业学习教程

本专题整合了大数据专业学习相关教程,阅读专题下面的文章了解更多详细内容。

2026.01.05

243

5

python处理大数据合集
python处理大数据合集

本专题整合了python处理大数据相关教程,阅读专题下面的文章了解更多详细内容。

2026.01.05

466

22

常用的数据库软件
常用的数据库软件

常用的数据库软件有MySQL、Oracle、SQL Server、PostgreSQL、MongoDB、Redis、Cassandra、Hadoop、Spark和Amazon DynamoDB。更多关于数据库软件的内容详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.02

4409

19

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3990

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3413

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2573

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

6250

7

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习