スパーク2.0.0ジョブのストリーミング、またはspark-streaming-kafka-0-8_2.11
V2.0.0を使用して、そしてとそれを提出で->
を使用している場合、私は次のエラーを取得する:SBT-アセンブリを詰めたスパーク2.0.0ストリーミングジョブはScalaのランタイムメソッドを欠い
build.sbt
"org.apache.spark" %% "spark-core" % "2.0.0" % "provided",
"org.apache.spark" %% "spark-streaming" % "2.0.0" % "provided"
に
spark-2-streaming-nosuchmethod-arrowassoc
のみ提供さ依存性を置く:
Exception in thread "main" org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 72.0 failed 1 times, most recent failure: Lost task 0.0 in stage 72.0 (TID 37, localhost): java.lang.NoSuchMethodError: scala.Predef$.ArrowAssoc(Ljava/lang/Object;)Ljava/lang/Object;
私はGitHubのレポにこの現象の簡単なイラストを入れて
ドライバコードのどこにでも->
を使用し、sbt-assembly
で梱包し、ジョブを送信するとエラーが発生します。これは大きな問題ではなく、ArrayAssoc
を使用すると回避できますが、spark-streaming-kafka-0-8_2.11
v2.0.0はそれがどこかにあり、同じエラーが発生します。
ので、同じようにそれをやって:あなたがやっている場合
wordCounts.map{
case (w, c) => Map(w -> c)
}.print()
その後
sbt assembly
その後
spark-2.0.0-bin-hadoop2.7/bin/spark-submit \
--class org.apache.spark.examples.streaming.NetworkWordCount \
--master local[2] \
--deploy-mode client \
./target/scala-2.11/spark-2-streaming-nosuchmethod-arrowassoc-assembly-1.0.jar \
localhost 5555
uber JARにScalaを含めますか? –
もちろん、sbt-assemblyにはデフォルトでScalaランタイムが含まれています。しかし、確かめるために、私もそれを明示的に要求しようとしました。 – Utgarda