Spark Streaming与Kafka集成依赖报错:无法下载spark-sql-kafka-0-10_3:3.5.0
问题分析
这个报错的核心是sbt无法解析org.apache.spark:spark-sql-kafka-0-10_3:3.5.0依赖,大概率是Scala版本后缀写错或者依赖配置不完整导致的。Spark Kafka连接器的依赖命名规则是spark-sql-kafka-0-10_{Scala版本}:{Spark版本},比如Scala 2.13对应的依赖应该是spark-sql-kafka-0-10_2.13:3.5.0,而不是_3。
解决方案
1. 修正build.sbt的依赖配置
确保依赖后缀和项目Scala版本匹配,同时添加正确的仓库地址,示例配置如下:
name := "SparkKafkaStreaming" version := "0.1" scalaVersion := "2.13.12" // Spark 3.5.0默认适配Scala 2.13.x,要和这个版本对应 libraryDependencies ++= Seq( "org.apache.spark" %% "spark-sql" % "3.5.0" % Provided, "org.apache.spark" %% "spark-sql-kafka-0-10" % "3.5.0" % Provided ) // 可选:添加国内镜像加速依赖下载 resolvers ++= Seq( "Aliyun Maven" at "https://maven.aliyun.com/repository/public", "Apache Maven" at "https://repo.maven.apache.org/maven2/" )
- 用
%%可以自动匹配项目的Scala版本,避免手动写错后缀;如果手动写依赖,必须确保是_2.13而非_3。 % Provided表示该依赖在Spark集群环境中已存在,无需打包到jar包,避免冲突。
2. 确认版本兼容性
Spark 3.5.0和Kafka 3.6.1是兼容的,官方Spark Kafka连接器支持的Kafka版本范围是0.10.0到最新稳定版,版本本身不存在兼容性问题。
3. 清理sbt缓存并重试
如果修正依赖后仍报错,可能是sbt缓存异常,执行以下命令清理后重新编译:
sbt clean sbt compile
4. 检查网络连接
若依赖下载失败是网络问题,确认机器能访问Maven中央仓库,或者配置上述国内镜像仓库加速。
内容的提问来源于stack exchange,提问作者noureddine
相关产品推荐
相关产品推荐

