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

Spark无法加载Kafka相关Jar包及Scala类缺失问题求助

问题解决步骤

1. 修正路径拼写错误

从错误信息可以看到,系统实际路径是/home/tuanle/apachearea/...,但代码中spark_jar变量写的是areaapache,这是拼写错误。修改为正确的路径:

spark_jar = "/home/tuanle/apachearea/software/spark-3.5.2-bin-hadoop3/jars"

去掉file:///前缀,本地文件路径无需该标识。

2. 移除不必要的Jar包

  • spark-streaming-kafka-0-10_2.13-3.5.2.jar:你使用的是结构化流(Structured Streaming),依赖的是spark-sql-kafka-0-10,而非传统DStream API的Kafka连接器,保留该Jar会导致冲突。
  • jsr305-3.0.0.jar:该Jar已包含在Spark默认依赖中,无需重复指定。

3. 匹配Kafka客户端版本

Spark 3.5.2的spark-sql-kafka-0-10是基于kafka-clients 3.4.0编译的,你使用的3.8.0版本存在兼容性问题。将kafka-clients-3.8.0.jar替换为kafka-clients-3.4.0.jar并放入Spark的jars目录。

4. 简化Spark Jars配置

更新SparkSession构建器中的spark.jars配置,只保留必要的Jar包:

.config("spark.jars", f"{spark_jar}/spark-cassandra-connector_2.13-3.5.1.jar,{spark_jar}/spark-sql-kafka-0-10_2.13-3.5.2.jar,{spark_jar}/kafka-clients-3.4.0.jar,/usr/share/java/mysql-connector-java.jar")

5. 验证Jar包存在性

逐一检查以下Jar包是否存在于指定目录:

  • spark-cassandra-connector_2.13-3.5.1.jar(Spark jars目录)
  • spark-sql-kafka-0-10_2.13-3.5.2.jar(Spark jars目录)
  • kafka-clients-3.4.0.jar(Spark jars目录)
  • mysql-connector-java.jar(/usr/share/java/目录)

6. 备选方案:使用spark-submit提交脚本

如果上述配置仍有问题,直接通过spark-submit命令指定Jar包,避免代码中路径配置的问题:

spark-submit --jars /home/tuanle/apachearea/software/spark-3.5.2-bin-hadoop3/jars/spark-cassandra-connector_2.13-3.5.1.jar,/home/tuanle/apachearea/software/spark-3.5.2-bin-hadoop3/jars/spark-sql-kafka-0-10_2.13-3.5.2.jar,/home/tuanle/apachearea/software/spark-3.5.2-bin-hadoop3/jars/kafka-clients-3.4.0.jar,/usr/share/java/mysql-connector-java.jar your_script.py

问题根源说明

  • 路径拼写错误导致Spark无法找到指定Jar包;
  • 不必要的Jar包引发API冲突;
  • Kafka客户端版本不兼容导致类加载失败;
  • scala/$less$colon$less错误是Jar包版本不匹配和路径问题共同作用的结果,修复上述配置后即可解决。

内容的提问来源于stack exchange,提问作者Lê Anh Tuấn 291N40

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 19:48:08