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

spark-submit提交作业报ClassNotFoundException找不到hudi数据源

问题描述

读取Hudi数据时抛出如下异常:

Caused by: java.lang.ClassNotFoundException: Failed to find data source: hudi. Please find packages at http://spark.apache.org/third-party-projects.html

同一集群下,Jupyter Notebook中运行以下Scala代码可正常读取Hudi数据:

import org.apache.spark.sql.SparkSession
val spark = SparkSession.builder.config(
    "spark.sql.catalogImplementation", "hive"
).config(
    "spark.serializer", "org.apache.spark.serializer.KryoSerializer"
).enableHiveSupport().getOrCreate

import org.apache.hudi.DataSourceReadOptions
val hudiIncQueryDF = spark.read.format("hudi").load(
    "path"
)

import org.apache.spark.sql.functions._
hudiIncQueryDF.filter(col("column_name")===lit("2022-06-01")).show(10,false)

集群初始化时已经配置全局参数:

--properties spark:spark.jars="gs://rdl-stage-lib/hudi-spark3-bundle_2.12-0.10.0.jar" \

但使用spark-submit提交同逻辑作业时固定抛出上述类找不到错误,已在作业配置中添加spark.serializer=org.apache.spark.serializer.KryoSerializer参数,仍无法解决。

根因分析
  • 集群层面配置的spark.jars参数仅对交互式作业会话(Jupyter、spark-shell、pyspark等启动时默认继承集群全局Spark配置的场景)生效。spark-submit提交批作业时,会优先加载提交命令中指定的配置,默认不会继承全局的spark.jars配置,导致Hudi的核心依赖包没有被加载到作业运行时的classpath中,因此找不到hudi数据源实现。
  • spark.serializer配置为Kryo只是Hudi运行的必要配置项,不负责加载Hudi的依赖类,仅配置该参数无法解决类缺失问题。
修复方案

三选一即可:

  1. 提交作业时显式指定Hudi依赖包路径,和集群全局配置的包保持一致即可:
    spark-submit \
    --conf spark.jars="gs://rdl-stage-lib/hudi-spark3-bundle_2.12-0.10.0.jar" \
    --conf spark.serializer=org.apache.spark.serializer.KryoSerializer \
    # 其余原有提交参数,比如主类、作业jar包、业务参数等
    
  2. 若不想每次提交都重复写jar路径,可以将对应版本的hudi-spark3-bundle_2.12-0.10.0.jar上传到集群所有节点的Spark安装目录下的jars文件夹中,Spark启动时会自动加载该目录下的所有依赖,无需额外配置。
  3. 提交时通过--packages参数自动拉取对应版本依赖,注意版本必须和集群环境匹配(Spark3、Scala2.12、Hudi0.10.0),示例参数:
    spark-submit \
    --packages org.apache.hudi:hudi-spark3-bundle_2.12:0.10.0 \
    --conf spark.serializer=org.apache.spark.serializer.KryoSerializer \
    # 其余提交参数
    

排查提示:如果配置完依赖后仍报相同错误,先确认提交作业使用的账号有权限访问对应存储路径下的Hudi依赖包,避免权限问题导致依赖拉取失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 21:54:29