Spark 高可用部署中的路径扩容与软链接技巧


背景说明

在 Spark 部署过程中,其默认的工作目录 work/ 会存放大量的日志、临时任务缓存等文件。当该目录位于用户主目录或系统盘下,如:

/home/xx/module/spark-2.4.8/work

极易导致磁盘爆满、影响任务执行稳定性。


方法一:修改 spark-env.sh 指定新路径

步骤 1:停止 Spark(软链接方式)

cd $SPARK_HOME/sbin
./stop-all.sh

步骤 2:创建新的存储路径

mkdir -p /data3/xx/spark/work

步骤 3:编辑 spark-env.sh

复制模版文件(如果还没有):

cp conf/spark-env.sh.template conf/spark-env.sh

添加环境变量:

SPARK_WORK_DIR=/data3/xx/spark/work

保存后退出。

步骤 4:启动 Spark

./start-all.sh

此时 Spark 会使用新的 work 目录。


方法二:使用软链接(无需修改配置)

如果你不想更改 Spark 配置文件,可直接用软链接重定向工作路径:

步骤 1:停止 Spark

./stop-all.sh

步骤 2:迁移工作目录

mv /home/xx/module/spark-2.4.8/work /data3/xx/spark/work

步骤 3:创建软链接

ln -s /data3/xx/spark/work /home/xx/module/spark-2.4.8/work

Spark 启动时仍会认为它在访问 $SPARK_HOME/work,实际数据已写入 /data3。


两种方法对比

方式 需改配置 操作复杂度 安全性 适用场景
修改 spark-env.sh 是 低 高 官方推荐方式,适合长期维护
软链接替换路径 否 中 中 无缝切换、保留原目录结构

注意事项

  • 新路径所在磁盘(如 /data3)应为 大容量、独立挂载的数据盘
  • 如果采用软链接方式,请确保原路径被彻底移动且无读写冲突
  • 更改完毕后可用 ls /data3/xx/spark/work 验证任务执行是否写入新路径

总结

合理规划 Spark 的 work 目录是提升稳定性的重要步骤。本文介绍了两种路径迁移方法,各具优势,可按部署场景灵活选择。

下一篇将继续整理 Spark 与 Hadoop/Zookeeper 配置下的高可用环境搭建,如需获取自动脚本化迁移方案,欢迎留言交流。


文章作者: QT
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 QT !
赏
 上一篇
Java/Spark 项目报错:NoClassDefFoundError 的成因与解决方案 Java/Spark 项目报错:NoClassDefFoundError 的成因与解决方案
本文聚焦于 Java 和 Spark 项目中经常遇到的类加载错误 NoClassDefFoundError,以 log4j 缺失为例,深入剖析错误成因、场景及彻底解决方法。
下一篇 
Mihomo 启动、代理与常见故障排查指南 Mihomo 启动、代理与常见故障排查指南
本文整理了 Mihomo 启动时常见问题的解决方案,包括僵尸进程清理、UTF-8 配置错误、端口冲突排查与 clash 冲突、curl 测试方法、后台运行建议等关键实践技巧。
  目录