Spark 3.5.1 单机环境 5 分钟快速部署:Linux/Mac 双平台验证

发布时间:2026/11/6 1:59:13

Spark 3.5.1 单机环境 5 分钟快速部署:Linux/Mac 双平台验证 Spark 3.5.1 极速部署指南Linux/Mac 双平台实战对于需要快速验证Spark功能或进行本地开发的工程师而言繁琐的集群部署往往成为阻碍效率的第一道门槛。本文将带你用5分钟完成Spark 3.5.1最新版本在Linux/Mac环境的极简部署无需Hadoop依赖直接体验分布式计算的核心能力。1. 环境准备与资源选择在开始前请确保系统已安装JDK 8/11/17推荐OpenJDKPython 3.6仅PySpark需要至少4GB可用内存Spark 3.5.1提供了多种预编译包我们推荐选择spark-3.5.1-bin-hadoop3.tgz # 内置Hadoop客户端库提示即使选择without-hadoop版本Spark仍可独立运行只是无法直接连接HDFS下载速度优化国内用户# 使用阿里云镜像 wget https://mirrors.aliyun.com/apache/spark/spark-3.5.1/spark-3.5.1-bin-hadoop3.tgz2. 一键部署脚本将以下脚本保存为install_spark.sh并执行#!/bin/bash SPARK_VERSION3.5.1 HADOOP_VERSIONhadoop3 INSTALL_DIR$HOME/spark # 自动检测系统类型 if [[ $OSTYPE darwin* ]]; then BREW_PREFIX$(brew --prefix) export JAVA_HOME${JAVA_HOME:-$(/usr/libexec/java_home)} else export JAVA_HOME${JAVA_HOME:-$(dirname $(dirname $(readlink -f $(which javac))))} fi # 下载并解压 wget -qO- https://archive.apache.org/dist/spark/spark-$SPARK_VERSION/spark-$SPARK_VERSION-bin-$HADOOP_VERSION.tgz | \ tar xz -C /tmp \ mv /tmp/spark-$SPARK_VERSION-bin-$HADOOP_VERSION $INSTALL_DIR # 环境变量配置 cat EOF ~/.bashrc export SPARK_HOME$INSTALL_DIR export PATH\$PATH:\$SPARK_HOME/bin export PYSPARK_PYTHONpython3 export PYTHONPATH\$SPARK_HOME/python:\$PYTHONPATH EOF source ~/.bashrc echo Spark $SPARK_VERSION 安装完成 echo 快速测试命令pyspark --master local[2]关键配置说明local[2]表示使用2个线程的本地模式内存不足时可添加--driver-memory 1g3. 核心配置调优编辑$SPARK_HOME/conf/spark-defaults.conf增加spark.master local[*] spark.driver.memory 2g spark.executor.memory 1g spark.ui.port 4040 spark.sql.shuffle.partitions 8Mac用户特别注意# 解决MacOS文件句柄限制问题 echo ulimit -n 10000 ~/.bashrc4. 多语言开发验证Python示例PySparkfrom pyspark.sql import SparkSession spark SparkSession.builder \ .appName(WordCount) \ .getOrCreate() text spark.sparkContext.parallelize([ Spark is fast, Spark is easy, Spark is powerful ]) counts text.flatMap(lambda line: line.split( )) \ .map(lambda word: (word, 1)) \ .reduceByKey(lambda a, b: a b) print(counts.collect())Scala示例spark-shellval data Array(1, 2, 3, 4, 5) val distData sc.parallelize(data) println(distData.reduce(_ _))SQL验证CREATE TABLE demo (id INT, name STRING) USING parquet; INSERT INTO demo VALUES (1, Spark), (2, Flink); SELECT * FROM demo WHERE id 1;5. 性能对比测试不同部署模式资源消耗对比模式启动时间内存占用适合场景local1.2s300MB简单调试local[4]1.5s1.2GB多核计算local-cluster3.8s2.4GB模拟分布式环境测试WordCount性能1GB文本$ time spark-submit --master local[4] examples/src/main/python/wordcount.py input.txt real 0m28.417s user 0m52.813s sys 0m4.612s6. 常见问题排查问题1Java版本不兼容# 解决方案明确指定Java路径 export JAVA_HOME/path/to/jdk问题2Python版本冲突# 强制使用python3 export PYSPARK_PYTHONpython3问题3端口冲突# 修改Web UI端口 spark.ui.port4041日志查看技巧tail -f $SPARK_HOME/logs/spark-*.out7. 进阶技巧内存优化配置SparkSession.builder \ .config(spark.driver.memory, 4g) \ .config(spark.executor.memory, 2g) \ .config(spark.memory.offHeap.enabled, true) \ .config(spark.memory.offHeap.size, 1g)Jupyter集成pip install jupyter findspark然后在Notebook中import findspark findspark.init() from pyspark.sql import SparkSession spark SparkSession.builder.getOrCreate()依赖管理# 提交包含第三方库的作业 spark-submit --packages org.apache.spark:spark-sql-kafka-0-10_2.12:3.5.18. 资源清理卸载Spark只需rm -rf $SPARK_HOME # 并从.bashrc中移除相关环境变量临时文件清理# Spark产生的元数据 rm -rf /tmp/spark-*
延伸阅读

更多相关文章

2026/10/24 2:48:56

3分钟掌握SingleFile:让网页保存从此变得简单可靠

3分钟掌握SingleFile:让网页保存从此变得简单可靠 【免费下载链接】SingleFile Web Extension for saving a faithful copy of a complete web page in a single HTML file 项目地址: https://gitcode.com/gh_mirrors/si/SingleFile 你是否曾经遇到过这样的困…

2026/11/4 1:14:53

乌鲁木齐的干果老店竟然都藏在这个市场?

乌鲁木齐的干果老店竟然都藏在这个市场? 乌鲁木齐,这座充满异域风情的城市,不仅是丝绸之路的重要节点,也是新疆特产的集散地。在这里,你可以找到各种各样的新疆干果,而其中一些最古老、最有名的干果老店&a…

2026/11/1 5:18:19

GitHub 高效搜索 ROS 软件包:3 个高级技巧与 2 个官方仓库筛选策略

GitHub 高效搜索 ROS 软件包:3 个高级技巧与 2 个官方仓库筛选策略在机器人开发过程中,选择合适的 ROS 软件包往往能事半功倍。但面对 GitHub 上数以万计的 ROS 相关仓库,如何快速找到高质量、维护活跃的软件包?本文将分享一套系统…

2026/11/6 1:58:59

质量控制常用方法以及案例

在现代企业管理中,质量控制(QC, Quality Control)的核心在于通过系统化的工具来预防缺陷、找出问题根源并实现持续改进。最常用的质量控制方法(以经典的“品管七大手法”与现代管理理论为主),并结合实际工业…

2026/11/6 1:58:59

800V超充技术:让电动汽车补能像加油一样快

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/6 1:58:59

解决uni.app框架下的APP读取NFC硬件UID的冷启动问题

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 15:39:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/6 1:03:39

MCU晶振电路设计全解析:从负载电容计算到PCB布局调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 15:39:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑