2

J'essaye d'exécuter un cahier zeppelin qui contient l'exemple structuré de diffusion d'étincelle avec le connecteur de Kafka.Zeppelin 6.5 + Connecteur Apache Kafka pour Structured Streaming 2.0.2

>kafka is up and running on localhost port 9092 

>from zeppelin notebook, sc.version returns String = 2.0.2 

Voici mon environnement:

kafka: kafka_2.10-0.10.1.0 

zeppelin: zeppelin-0.6.2-bin-all 

spark: spark-2.0.2-bin-hadoop2.7 

Voici le code dans mon carnet zeppelin:

import org.apache.enter code herespark.sql.functions.{explode, split} 


// Setup connection to Kafka val kafka = spark.readStream 
.format("kafka") 
.option("kafka.bootstrap.servers","localhost:9092") 
// comma separated list of broker:host 
.option("subscribe", "twitter")  
// comma separated list of topics 
.option("startingOffsets", "latest") 
// read data from the end of the stream .load() 

Voici l'erreur que je reçois quand je exécutez le cahier:

import org.apache.spark.sql.functions. {Explode, split} java.lang.ClassNotFoundException: Impossible de trouver la source de données: kafka. S'il vous plaît trouver des forfaits à https://cwiki.apache.org/confluence/display/SPARK/Third+Party+Projects à org.apache.spark.sql.execution.datasources.DataSource.lookupDataSource (DataSource.scala: 148) à org.apache.spark.sql.execution.datasources.DataSource.providingClass $ lzycompute (DataSource.scala: 79) à org.apache.spark.sql.execution.datasources.DataSource.providingClass (Source de données.scala: 79) à org.apache.spark.sql.execution.datasources.DataSource .sourceSchema (DataSource.scala: 218) at org.apache.spark.sql.execution.datasources.DataSource.sourceInfo $ lzycompute (DataSource.scala: 80) at org.apac he.spark.sql.execution.datasources.DataSource.sourceInfo (DataSource.scala: 80) at org.apache.spark.sql.execution.streaming.StreamingRelation $ .apply (StreamingRelation.scala: 30) at org .apache.spark.sql.streaming.DataStreamReader.load (DataStreamReader.scala: 124) ... 86 élue Causée par: java.lang.ClassNotFoundException: kafka.DefaultSource à scala.reflect.internal.util.AbstractFileClassLoader. findClass (AbstractFileClassLoader.scala: 62) at java.lang.ClassLoader.loadClass (ClassLoader.java:424) à java.lang.ClassLoader.loadClass (ClassLoader.java:357) à org.apache.spark.sql. execution.datasources.DataSource $$ anonfun $ 5 $$ anonfun $ applique $ 1.apply (DataSource.scala: 132) à org.apache.spark.sql.execution.datasources.DataSource $$ anonfun $ 5 $$ anonfun $ appliquer $ 1.appliquer (DataSource.scala: 132) à scala.util.Try $ .apply (Try.scala: 192)

Un conseil d'aide serait grandement apprécié.

Thnx

+0

causée par: java.lang.ClassNotFoundException: kafka.DefaultSource indique que vous manquez cette classe de votre chemin de classe.A quoi ressemble votre chemin de classe et inclut-il un pot avec cette classe kafka.DefaultStore? – dawsaw

+0

La douleur de mon existence au cours des deux dernières semaines. ;-) – Warsame

Répondre

1

Vous avez probablement déjà compris cela, mais mettre dans la réponse pour les autres, vous devez ajouter ce qui suit à zeppelin-env.sh.j2

SPARK_SUBMIT_OPTIONS=--packages org.apache.spark:spark-streaming-kafka-0-10_2.11:2.1.0 

avec potentiellement d'autres dépendances si vous utilisez le client de kafka:

--packages org.apache.spark:spark-sql-kafka-0-10_2.11:2.1.0,org.apache.spark:spark-sql_2.11:2.1.0,org.apache.kafka:kafka_2.11:0.10.0.1,org.apache.spark:spark-streaming-kafka-0-10_2.11:2.1.0,org.apache.kafka:kafka-clients:0.10.0.1