Ich habe diese einfache Kafka-Streamkafka Weitstrahl DSTREAM Karte nicht gedruckt
val messages = KafkaUtils.createDirectStream[String, String, StringDecoder, StringDecoder](ssc, kafkaParams, topicsSet)
// Each Kafka message is a flight
val flights = messages.map(_._2)
flights.foreachRDD(rdd => {
println("--- New RDD with " + rdd.partitions.length + " partitions and " + rdd.count() + " flight records");
rdd.map { flight => {
val flightRows = FlightParser.parse(flight)
println ("Parsed num rows: " + flightRows)
}
}
})
ssc.start()
ssc.awaitTermination()
Kafka Nachrichten hat Spark Streaming es in der Lage, sie als RDDs zu bekommen. Aber das zweite println in meinem Code druckt nichts. Ich schaute auf Treiber-Konsolen-Logs, wenn im lokalen [2] -Modus lief, überprüfte Garn-Logs, wenn im Garn-Client-Modus lief.
Was fehlt mir?
Statt rdd.map, der folgende Code druckt gut in Funkenfahrerkonsole:
for(flight <- rdd.collect().toArray) {
val flightRows = FlightParser.parse(flight)
println ("Parsed num rows: " + flightRows)
}
Aber ich habe Angst, dass die Verarbeitung auf diesem Flugobjekt in Funken Fahrer Projekt passieren könnte, statt Testamentsvollstrecker. Bitte korrigieren Sie mich, falls ich falsch liege.
Dank
Haben Sie sich die * worker * executor logs angeschaut? Vielleicht finden Sie Ihre 'FlightParser' Klasse nicht? –