Spark Streaming导入kafka010包失败及SSL证书路径配置问题咨询
问题1:kafka010包导入失败解决
- 核心错误原因:你配置的Spark Streaming Kafka依赖和使用的Scala版本不匹配,且存在无效配置项:
原依赖"org.apache.spark" % "spark-streaming-kafka-0-10_2.11" % "3.2.0" % "2.1.3"存在两处错误:- 后缀
_2.11表示该依赖适配Scala 2.11版本,和你使用的Scala 2.13.6完全不兼容 - 末尾的
% "2.1.3"是无效配置,不属于该依赖的版本声明参数
- 后缀
- 修正后的sbt依赖配置:
使用%%让sbt自动匹配当前项目的Scala版本,按需调整provided标识:// 本地调试运行不需要加provided,提交到Spark集群时可以加provided避免依赖冲突 libraryDependencies += "org.apache.spark" %% "spark-streaming-kafka-0-10" % "3.2.0" - 额外注意:如果打包提交到集群运行,需要用
sbt-assembly插件把该依赖打入最终的jar包,或者确认集群的Spark环境已预安装该适配包。
问题2:resource目录下证书路径配置方法
Kafka的SSL配置需要读取文件系统上的真实文件路径,jar包内的resource文件无法直接被SSL上下文识别,可选择以下两种方案:
方案1(通用,适配打包后运行场景)
代码运行时将resource中的证书拷贝到临时文件目录,读取临时文件的绝对路径:
import java.io.File import java.nio.file.{Files, StandardCopyOption} // 读取resource下的truststore val truststoreStream = getClass.getClassLoader.getResourceAsStream("kafka.client.truststore.jks") val tempTruststore = File.createTempFile("kafka_truststore", ".jks") Files.copy(truststoreStream, tempTruststore.toPath, StandardCopyOption.REPLACE_EXISTING) // 读取resource下的keystore val keystoreStream = getClass.getClassLoader.getResourceAsStream("kafka.client.keystore.jks") val tempKeystore = File.createTempFile("kafka_keystore", ".jks") Files.copy(keystoreStream, tempKeystore.toPath, StandardCopyOption.REPLACE_EXISTING) // kafka参数中填入临时文件绝对路径 val kafkaParams = Map[String, Object]( // 其余参数不变 "ssl.truststore.location" -> tempTruststore.getAbsolutePath, "ssl.keystore.location" -> tempKeystore.getAbsolutePath )
方案2(仅适用于本地IDE未打包调试场景)
直接填写resource目录的相对路径即可:
"ssl.truststore.location" -> "src/main/resources/kafka.client.truststore.jks", "ssl.keystore.location" -> "src/main/resources/kafka.client.keystore.jks"
额外代码修正提示
你当前代码中未初始化streamingContext,直接调用会报错,需要提前初始化:
import org.apache.spark.SparkConf import org.apache.spark.streaming.{Seconds, StreamingContext} val conf = new SparkConf().setAppName("KafkaSSLConsumer").setMaster("local[*]") val streamingContext = new StreamingContext(conf, Seconds(1))
内容的提问来源于stack exchange,提问作者amarnath harish
相关产品推荐
相关产品推荐

