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

Spark 3.3.2升级至3.4.0后K8s部署报NoSuchFileException求助

Spark 3.4.0 K8s部署Jar包找不到问题的原因与解决

Spark 3.4.0在K8s模式下对local://路径的解析逻辑做了明确变更,不少用户升级后都遇到过和你一样的NoSuchFileException问题,核心原因就是路径解析规则的调整。

问题根源

Spark 3.4.0为修复K8s模式下的路径安全漏洞,修改了local://开头路径的解析逻辑:

  • Spark 3.3.2及更早版本中,local:///<path>/xxx.jar会直接映射为容器内的绝对路径/<path>/xxx.jar
  • Spark 3.4.0中,local:///的写法不再被识别为绝对路径前缀,解析时会省略第三个斜杠,将local:///<path>/xxx.jar解析为相对路径(相对于Spark工作目录),自然找不到对应文件

验证方式

查看Spark 3.4.0的LocalResourceUtils或KubernetesClientApplication相关源码,能看到路径解析部分的代码变更:原本处理local://前缀时会保留后续的绝对路径,现在会统一处理为相对路径或要求使用正确的绝对路径写法。

解决办法

  • 调整路径写法:
    两种可行的修改方式二选一:
    1. 去掉local://后的第三个斜杠,改为local://<path>/spark-assembly-1.0.jar
    2. 直接使用容器内的绝对路径,去掉local://前缀,写成/<path>/spark-assembly-1.0.jar
  • 确认镜像内文件路径:检查Dockerfile中拷贝jar包的命令,确保容器内确实存在/<path>/spark-assembly-1.0.jar文件,避免因镜像构建错误导致文件缺失

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 05:15:11