web-dev-qa-db-fra.com

AbstractMethodError création Kafka stream

J'essaie d'ouvrir un flux Kafka (versions essayées 0.11.0.2 et 1.0.1) en utilisant la méthode createDirectStream et en obtenant cette erreur 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)

Voici comment je l'appelle:

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

J'ai Kafka exécuté sur 9092 et je peux créer des producteurs et des consommateurs et passer des messages entre eux, donc je ne sais pas pourquoi cela ne fonctionne pas à partir du code Scala. Toutes les idées appréciées.

13
covfefe

Il s'avère que j'utilisais Spark 2.3 et que j'aurais dû utiliser Spark 2.2. Apparemment, cette méthode a été rendue abstraite dans la dernière version, donc j'obtenais cela Erreur.

18
covfefe

J'ai eu la même exception, dans mon cas, j'ai créé le pot d'application avec dépendance à spark-streaming-kafka-0-10_2.11 de la version 2.1.0, tout en essayant de déployer sur Spark 2.3.0 cluster.

5
Oliv

J'ai reçu la même erreur. Je mets mes dépendances dans la même version que mon spark interprète est

%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")
0
la_femme_it