You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spark集群仅单节点生效spark.local.dir等配置的问题求助

解决Spark Client模式下仅单个节点生效spark.local.dir/SPARK_WORKER_OPTS的问题

问题背景

运行Spark 3.5.0/PySpark 3.5.0集群(Client模式,5个Ubuntu 22.04.2 LTS节点)时出现“No Space Left on Device”错误,原因是Spark默认将shuffle和缓存文件写入worker节点的/tmp目录。尝试多种方式配置spark.local.dir、SPARK_LOCAL_DIRS及SPARK_WORKER_OPTS,但仅单个节点生效,其余节点仍使用默认路径,指定路径为全集群共享的高速挂载卷。

排查与修复步骤

1. 强制同步所有Worker节点的Spark配置文件

Client模式下,Driver在提交节点运行,Worker节点的配置不会自动同步,必须手动确保所有节点的spark-defaults.conf和spark-env.sh完全一致:

  • 登录每个Worker节点,修改$SPARK_HOME/conf/spark-defaults.conf,添加:
    spark.local.dir /mnt_path
    
  • 修改每个Worker节点的$SPARK_HOME/conf/spark-env.sh,添加:
    export SPARK_LOCAL_DIRS=/mnt_path
    export SPARK_WORKER_OPTS="-Dspark.worker.cleanup.enabled=true -Dspark.worker.cleanup.interval=60 -Dspark.worker.cleanup.appDataTtl=60"
    
  • 配置完成后,重启所有Worker节点的Spark服务:
    $SPARK_HOME/sbin/stop-worker.sh
    $SPARK_HOME/sbin/start-worker.sh spark://<master-node-ip>:7077
    

2. 规避Client模式的配置覆盖陷阱

Client模式中,Driver端的配置可能无法正确传递给所有Worker的Executor,需注意:

  • 不要混用spark.local.dir和SPARK_LOCAL_DIRS:两者功能等价,优先用SPARK_LOCAL_DIRS(环境变量方式对Worker进程更直接)
  • 提交任务时,通过--conf明确传递配置,确保Worker节点能识别:
    spark-submit \
      --master spark://<master-node-ip>:7077 \
      --conf "spark.local.dir=/mnt_path" \
      --conf "spark.executorEnv.SPARK_LOCAL_DIRS=/mnt_path" \
      your_script.py
    

3. 验证每个Worker节点的配置生效状态

在每个Worker节点执行以下操作确认配置加载:

  • 查看Worker启动日志(默认在$SPARK_HOME/logs),搜索spark.local.dir或SPARK_LOCAL_DIRS,确认路径为/mnt_path
  • 检查Worker进程的环境变量:
    ps aux | grep spark-worker | grep SPARK_LOCAL_DIRS
    
  • 运行测试任务后,检查/mnt_path下是否生成Spark临时文件

4. 确认共享挂载卷的权限配置

确保所有Worker节点的Spark运行用户对/mnt_path拥有读写权限:

sudo chown -R spark:spark /mnt_path
sudo chmod -R 755 /mnt_path

核心提示

  • Client模式下,Master仅负责资源分配,Worker的配置完全依赖本地conf目录文件,所有节点配置必须完全一致
  • SPARK_WORKER_OPTS是Worker进程的启动参数,仅在Worker节点的spark-env.sh中配置才会生效,Driver端的配置无法传递给Worker进程

内容的提问来源于stack exchange,提问作者jaybeen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 10:12:47