Apache kafka Spark Streaming Kafka java.lang.ClassNotFoundException:org.apache.Kafka.common.serialization.StringDeserializer

Apache kafka Spark Streaming Kafka java.lang.ClassNotFoundException:org.apache.Kafka.common.serialization.StringDeserializer,apache-kafka,spark-streaming,spark-streaming-kafka,Apache Kafka,Spark Streaming,Spark Streaming Kafka,我正在使用spark streaming和Kafka集成,当我在本地模式下从IDE运行流媒体应用程序时,一切都很有魅力。但是,一旦我将其提交到集群,我就会出现以下错误: java.lang.ClassNotFoundException: org.apache.kafka.common.serialization.StringDeserializer 我正在使用sbt组装来构建我的项目 我的sbt如下所示: libraryDependencies ++= Seq( "org.apache.sp

我正在使用spark streaming和Kafka集成,当我在本地模式下从IDE运行流媒体应用程序时,一切都很有魅力。但是,一旦我将其提交到集群,我就会出现以下错误:

java.lang.ClassNotFoundException: org.apache.kafka.common.serialization.StringDeserializer

我正在使用sbt组装来构建我的项目

我的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
都没有成功。有人有什么建议吗

您需要从卡夫卡依赖项中删除“提供的”标志,因为它是一个没有为OOTB提供Spark的依赖项:

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"
)