我有下面的代码,它将听取kafka主题并使用spark streaming重现文本。但是,我无法在控制台上看到该文本。我没有在控制台上收到任何错误消息。我可能错了,但我希望kafka主题的文本显示在控制台上。
object scalaSparkProcessor {
def main(args: Array[String]) {
if (args.length < 3) {
System.err.println("Usage: scalaSparkProcessor <zkQuorum> topics> <numThreads>")
System.exit(1)
}
val Array(zkQuorum, topics, numThreads) = args
val sparkConf = new SparkConf().setAppName("scalaSparkProcessor")
val ssc = new StreamingContext(sparkConf, Seconds(5))
ssc.checkpoint("checkpoint")
val topicMap = topics.split(",").map((_, numThreads.toInt)).toMap
val lines = KafkaUtils.createStream(ssc,zkQuorum,"spark-streaming-consumer", topicMap).map(_._2)
lines.foreachRDD{rdd =>
rdd.foreach { println }}
ssc.start()
ssc.awaitTermination()
}
}
答案 0 :(得分:0)
请注意,{{1}}代码在执行程序上运行,因此您应该在执行程序控制台输出中看到输出。 因此,如果您转到spark UI,导航到执行程序选项卡,并选择执行程序,您应该能够在那里看到输出。
E.g。如果您在本地运行该作业,则可以转到lock virtual memory。 如果您在纱线上运行,则可以通过纱线ResourceManager UI导航到spark UI。
答案 1 :(得分:0)
在代码中进行以下调整:
lines.foreachRDD{
rdd =>
rdd.collect().foreach(println)
}