Kafka統合でsparkストリーミングを使用しています。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
すべて成功しませんでした。誰か提案するものはありますか
「提供された」フラグは、SparkでOOTBに提供されていない依存関係であるため、Kafka依存関係から削除する必要があります。
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"
)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加