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

Spark-submit提交Fat Jar提示Jar不存在致主类加载失败求助

环境信息

  • 系统:Windows 10/Linux Ubuntu 8 LTS
  • Spark版本:3.3.0 (spark-3.3.0-bin-hadoop3)

问题描述

使用spark-submit提交Fat Jar时,Jar文件实际存在,但收到DependencyUtils的“jar does not exists”警告,最终导致主类<packagename>.Application加载失败。

执行命令

bin\spark-submit --verbose --master local --class <packagename>.Application
--executor-memory 800m C:\<path to project>\target\scala-2.12\ProjectName.jar

执行结果

Using properties file: null
Parsed arguments:
  master                  local
  deployMode              null
  executorMemory          800m
  executorCores           null
  totalExecutorCores      null
  propertiesFile          null
  driverMemory            null
  driverCores             null
  driverExtraClassPath    null
  driverExtraLibraryPath  null
  driverExtraJavaOptions  null
  supervise               false
  queue                   null
  numExecutors            null
  files                   null
  pyFiles                 null
  archives                null
  mainClass               <packagename>.Application
  primaryResource         file:/C:<path to project>target/scala-2.12/ProjectName.jar
  name                    <packagename>.Application
  childArgs               []
  jars                    null
  packages                null
  packagesExclusions      null
  repositories            null
  verbose                 true

Spark properties used, including those specified through
 --conf and those from the properties file null:



Main class:
<packagename>.Application
Arguments:

Spark config:
(spark.app.name,<packagename>.Application)
(spark.app.submitTime,1664225037825)
(spark.jars,file:/C:<path to project>/target/scala-2.12/ProjectName.jar)
(spark.master,local)
(spark.submit.deployMode,client)
(spark.submit.pyFiles,)
Classpath elements:
file:/C:<path to project>/target/scala-2.12/PrrojectName.jar


22/09/26 22:43:57 WARN DependencyUtils: Local jar C:<path to project>\target\scala-2.12\ProjectName.jar does not exist, skipping.
Error: Failed to load class <packagename>.Application.
22/09/26 22:43:57 INFO ShutdownHookManager: Shutdown hook called

解决建议

  • 修正路径格式与拼写:从日志可见,Spark解析后的Jar路径缺失盘符斜杠(file:/C:<path to project>target...应为file:/C:/<path to project>/target...),Windows下建议将路径中的反斜杠改为正斜杠,或用双引号包裹路径,避免解析错误。例如:
    bin\spark-submit --verbose --master local --class <packagename>.Application --executor-memory 800m "C:/<path to project>/target/scala-2.12/ProjectName.jar"
    
  • 检查Jar文件名拼写:日志中Classpath显示的文件名是PrrojectName.jar(多了一个字母r),确认本地Jar文件的实际名称,保证命令中的文件名与实际完全一致。
  • 验证路径有效性:先在命令行执行dir C:\<path to project>\target\scala-2.12\ProjectName.jar(Windows)或ls <Jar路径>(Linux),确认Jar文件确实存在且路径无误,再将验证后的完整路径代入spark-submit命令。
  • 调整命令格式:原命令存在换行拆分参数的情况,可能导致参数解析异常,建议将命令整合为一行,确保参数与值的对应关系正确。
  • Linux环境权限检查:若在Ubuntu下运行,确保当前用户对Jar文件及所在目录拥有读权限,必要时执行chmod +r <Jar文件路径>添加权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 03:50:25