Spark集群实例翻倍及版本异常问题排查求助
Spark集群升级后旧版本残留问题排查与解决
1. 检查并清理残留进程
- 执行
ps -ef | grep spark,查看所有与Spark相关的进程,重点定位包含spark-3.4.1路径的进程 - 对旧版本进程执行
kill -9 <进程PID>强制终止;也可尝试用旧版本停止脚本批量终止:/path/to/old-spark/sbin/stop-all.sh - 检查systemd托管的Spark服务:
systemctl list-unit-files | grep spark,若存在旧版本服务配置,执行systemctl disable spark-xxx并删除对应服务文件(通常在/etc/systemd/system/目录下)
2. 彻底清理旧版本文件与缓存
- 查找磁盘上所有旧版本Spark目录:
find / -name "spark-3.4.1" -type d 2>/dev/null,找到后执行rm -rf <找到的目录路径>删除 - 清理用户缓存中的Spark依赖:
rm -rf ~/.ivy2/cache/org.apache.spark、rm -rf ~/.m2/repository/org/apache/spark - 删除Spark临时文件:
rm -rf /tmp/spark-*
3. 修正环境变量配置
- 检查全局环境配置文件(
/etc/profile、/etc/bashrc)和用户级配置文件(~/.bashrc、~/.bash_profile),删除所有指向旧版本Spark的SPARK_HOME、PATH配置 - 添加新版本环境变量:
export SPARK_HOME=/opt/spark-3.5.0 # 替换为你的新版本Spark安装路径 export PATH=$SPARK_HOME/bin:$SPARK_HOME/sbin:$PATH - 执行
source /etc/profile和source ~/.bashrc使配置生效,验证:echo $SPARK_HOME:输出应为新版本路径spark-submit --version:输出版本应为3.5.0
4. 清理Master节点元数据
Spark Master会缓存集群节点信息,需清理旧元数据:
- 停止Master服务后,删除Master工作目录:
rm -rf $SPARK_HOME/work/* - 检查并删除临时元数据目录:
rm -rf /tmp/spark-master-*
5. 重启集群并验证
- 使用新版本脚本启动集群:
$SPARK_HOME/sbin/start-all.sh - 访问Master UI(默认8080端口),确认:
- 可用Worker/Executor实例数恢复为3个
- UI顶部显示的Spark版本为3.5.0
- 在任意节点启动
spark-shell --master spark://<Master节点IP>:7077,查看Shell启动日志中的版本信息,提交简单任务(如sc.parallelize(1 to 10).count())验证集群正常运行
内容的提问来源于stack exchange,提问作者Sherwin R
相关产品推荐
相关产品推荐

