0
構造化ストリーミング用のKafka統合を使用しようとすると、NoSuchMethodErrorが発生します。 によって引き起こさ:java.lang.NoSuchMethodErrorの:Spark Kafka 0.10 NoSuchMethodError org.apache.kafka.clients.consumer.KafkaConsumer.assign
libraryDependencies ++= Seq(
scalaTest % Test,
"org.apache.spark" %% "spark-core" % "2.1.0" % "provided",
"org.apache.spark" %% "spark-sql" % "2.1.0" % "provided",
"org.apache.spark" %% "spark-sql-kafka-0-10" % "2.1.0" % "provided",
"org.apache.hadoop" % "hadoop-client" % "2.6.0" % "provided"
)
とScalaのバージョンは2.11です:
org.apache.kafka.clients.consumer.KafkaConsumer.assign(Ljava/util/Collection;)V
at org.apache.spark.sql.kafka010.CachedKafkaConsumer.createConsumer(CachedKafkaConsumer.scala:56)
at org.apache.spark.sql.kafka010.CachedKafkaConsumer.<init>(CachedKafkaConsumer.scala:45)
at org.apache.spark.sql.kafka010.CachedKafkaConsumer$.getOrCreate(CachedKafkaConsumer.scala:349)
at org.apache.spark.sql.kafka010.KafkaSourceRDD$$anon$1.<init>(KafkaSourceRDD.scala:137)
at org.apache.spark.sql.kafka010.KafkaSourceRDD.compute(KafkaSourceRDD.scala:136)
at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:323)
...
私のSBTは、これらの依存関係を持って利用できる非常に最初のレコードがある場合にスタックトレースは次のようになります.8。
私はデータフレーム用のスパークアプリケーションを実行できます。私にこのエラーを与えるのはカフカの統合だけです。構造化されたストリーミングコードドキュメンテーションhereからわずか一例である:私は問題を見ることができる何かアドバイス
val ds1 = spark
.readStream
.format("kafka")
.option("kafka.bootstrap.servers", "data01:9092,data02:9092,data03:9092")
.option("subscribe", "cluster-topic-01")
.load()
val ds2 = ds1.selectExpr("CAST(key AS STRING)", "CAST(value AS STRING)")
val query = ds2.writeStream
.format("console")
.start()
query.awaitTermination()
? TIA
チップをありがとう。 –
エラーはCloudera糸クラスターからのものであり、Flumeは以下の通りインストールされています: /usr/lib/flume-ng/lib/kafka-clients-0.9.0-kafka-2.0.2。 jar /usr/lib/flume-ng/lib/kafka_2.10-0.9.0-kafka-2.0.2.jar spark 2.1.0はconf/spark-env.shにこの行があります SPARK_DIST_CLASSPATH = "$ SPARK_DIST_CLASSPATH:/ usr/lib/flume-ng/lib/* " これは根本原因です。 FlumeがインストールされていないHadoopクライアントマシンがあり、問題なく動作します。今、spark-env.shの行をコメントアウトして、構造化されたストリーミングを糸にも実行させます。 –
うわー、 'NoSuchMethodError'や' NoClassDefFoundError'のように、Sparkの 'Error'sには常にそういうものがあります。あなたが問題を発見してうれしい。あなたのプロジェクトに幸運を! upvoteは評価されるだろう。 – Vidya