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-*
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-*