createDirectStream
メソッドを使用してKafka(試したバージョン0.11.0.2および1.0.1)ストリームを開き、このAbstractMethodErrorエラーを取得しようとしています:
Exception in thread "main" Java.lang.AbstractMethodError
at org.Apache.spark.internal.Logging$class.initializeLogIfNecessary(Logging.scala:99)
at org.Apache.spark.streaming.kafka010.KafkaUtils$.initializeLogIfNecessary(KafkaUtils.scala:39)
at org.Apache.spark.internal.Logging$class.log(Logging.scala:46)
at org.Apache.spark.streaming.kafka010.KafkaUtils$.log(KafkaUtils.scala:39)
at org.Apache.spark.internal.Logging$class.logWarning(Logging.scala:66)
at org.Apache.spark.streaming.kafka010.KafkaUtils$.logWarning(KafkaUtils.scala:39)
at org.Apache.spark.streaming.kafka010.KafkaUtils$.fixKafkaParams(KafkaUtils.scala:201)
at org.Apache.spark.streaming.kafka010.DirectKafkaInputDStream.<init>(DirectKafkaInputDStream.scala:63)
at org.Apache.spark.streaming.kafka010.KafkaUtils$.createDirectStream(KafkaUtils.scala:147)
at org.Apache.spark.streaming.kafka010.KafkaUtils$.createDirectStream(KafkaUtils.scala:124)
これは私がそれを呼んでいる方法です:
val preferredHosts = LocationStrategies.PreferConsistent
val kafkaParams = Map(
"bootstrap.servers" -> "localhost:9092",
"key.deserializer" -> classOf[IntegerDeserializer],
"value.deserializer" -> classOf[StringDeserializer],
"group.id" -> groupId,
"auto.offset.reset" -> "earliest"
)
val aCreatedStream = createDirectStream[String, String](ssc, preferredHosts,
ConsumerStrategies.Subscribe[String, String](topics, kafkaParams))
私はKafka 9092で実行されており、プロデューサーとコンシューマーを作成し、それらの間でメッセージを渡すことができるので、Scalaコードから動作しない理由はわかりません。どんなアイデアも感謝します。
私はSpark 2.3を使用していましたが、Spark 2.2を使用する必要がありました。エラー。
同じ例外がありました。私の場合、バージョンspark-streaming-kafka-0-10_2.11
の2.1.0
に依存するアプリケーションjarを作成し、Spark 2.3.0クラスターにデプロイしようとしました。
同じエラーを受け取りました。依存関係をsparkインタープリターと同じバージョンに設定します
%spark2.dep
z.reset()
z.addRepo("MavenCentral").url("https://mvnrepository.com/")
z.load("org.Apache.spark:spark-streaming-kafka-0-10_2.11:2.3.0")
z.load("org.Apache.kafka:kafka-clients:2.3.0")