Spark Streaming Kafka java.lang.ClassNotFoundException:org.apache.kafka.common.serialization.StringDeserializer
Spark Streaming Kafka java.lang.ClassNotFoundException: org.apache.kafka.common.serialization.StringDeserializer
我正在将 Spark Streaming 与 Kafka 集成一起使用,当我 运行 来自 IDE 的流式应用程序处于本地模式时,一切都很好用。但是,一旦我将其提交到集群,我就会不断出现以下错误:
java.lang.ClassNotFoundException:
org.apache.kafka.common.serialization.StringDeserializer
我正在使用 sbt assembly 构建我的项目。
我的 sbt 是这样的:
libraryDependencies ++= Seq(
"org.apache.spark" % "spark-streaming-kafka-0-10_2.11" % "2.2.0" % Provided,
"org.apache.spark" % "spark-core_2.11" % "2.2.0" % Provided,
"org.apache.spark" % "spark-streaming_2.11" % "2.2.0" % Provided,
"org.marc4j" % "marc4j" % "2.8.2",
"net.sf.saxon" % "Saxon-HE" % "9.7.0-20"
)
run in Compile := Defaults.runTask(fullClasspath in Compile, mainClass in (Compile, run), runner in (Compile, run)).evaluated
mainClass in assembly := Some("EstimatorStreamingApp")
我也试过使用 --package 选项
尝试 1
--packages org.apache.spark:spark-streaming-kafka-0-10_2.11:2.2.0
尝试 2
--packages org.apache.spark:spark-streaming-kafka-0-10-assembly_2.11:2.2.0
都没有成功。有没有人有什么建议
您需要从 Kafka 依赖项中删除 "provided" 标志,因为它是 Spark 未提供 OOTB 的依赖项:
libraryDependencies ++= Seq(
"org.apache.spark" % "spark-streaming-kafka-0-10_2.11" % "2.2.0",
"org.apache.spark" % "spark-core_2.11" % "2.2.0" % Provided,
"org.apache.spark" % "spark-streaming_2.11" % "2.2.0" % Provided,
"org.marc4j" % "marc4j" % "2.8.2",
"net.sf.saxon" % "Saxon-HE" % "9.7.0-20"
)
我正在将 Spark Streaming 与 Kafka 集成一起使用,当我 运行 来自 IDE 的流式应用程序处于本地模式时,一切都很好用。但是,一旦我将其提交到集群,我就会不断出现以下错误:
java.lang.ClassNotFoundException: org.apache.kafka.common.serialization.StringDeserializer
我正在使用 sbt assembly 构建我的项目。
我的 sbt 是这样的:
libraryDependencies ++= Seq(
"org.apache.spark" % "spark-streaming-kafka-0-10_2.11" % "2.2.0" % Provided,
"org.apache.spark" % "spark-core_2.11" % "2.2.0" % Provided,
"org.apache.spark" % "spark-streaming_2.11" % "2.2.0" % Provided,
"org.marc4j" % "marc4j" % "2.8.2",
"net.sf.saxon" % "Saxon-HE" % "9.7.0-20"
)
run in Compile := Defaults.runTask(fullClasspath in Compile, mainClass in (Compile, run), runner in (Compile, run)).evaluated
mainClass in assembly := Some("EstimatorStreamingApp")
我也试过使用 --package 选项
尝试 1
--packages org.apache.spark:spark-streaming-kafka-0-10_2.11:2.2.0
尝试 2
--packages org.apache.spark:spark-streaming-kafka-0-10-assembly_2.11:2.2.0
都没有成功。有没有人有什么建议
您需要从 Kafka 依赖项中删除 "provided" 标志,因为它是 Spark 未提供 OOTB 的依赖项:
libraryDependencies ++= Seq(
"org.apache.spark" % "spark-streaming-kafka-0-10_2.11" % "2.2.0",
"org.apache.spark" % "spark-core_2.11" % "2.2.0" % Provided,
"org.apache.spark" % "spark-streaming_2.11" % "2.2.0" % Provided,
"org.marc4j" % "marc4j" % "2.8.2",
"net.sf.saxon" % "Saxon-HE" % "9.7.0-20"
)