Spark streaming 来自Kafka的火花流在控制台上不产生输出

Spark streaming 来自Kafka的火花流在控制台上不产生输出,spark-streaming,kafka-producer-api,Spark Streaming,Kafka Producer Api,我有下面的代码,将听取卡夫卡主题,并复制文本,因为是使用火花流。但是,我无法看到控制台上的文本。我在控制台上没有收到任何错误消息。我可能错了,但我希望卡夫卡主题的文本会显示在控制台上 object scalaSparkProcessor { def main(args: Array[String]) { if (args.length < 3) { System.err.println("Usage: scalaSparkProcessor <zkQuorum>

我有下面的代码,将听取卡夫卡主题,并复制文本,因为是使用火花流。但是,我无法看到控制台上的文本。我在控制台上没有收到任何错误消息。我可能错了,但我希望卡夫卡主题的文本会显示在控制台上

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()
 }
}
对象缩放处理器{ def main(参数:数组[字符串]){ 如果(参数长度<3){ System.err.println(“用法:scalaSparkProcessor主题>”) 系统出口(1) } val数组(zkQuorum、主题、numThreads)=args val sparkConf=new sparkConf().setAppName(“scalaSparkProcessor”) val ssc=新的StreamingContext(sparkConf,秒(5)) ssc.检查点(“检查点”) val-topicMap=topics.split(“,”).map((\uu,numThreads.toInt)).toMap val lines=KafkaUtils.createStream(ssc,zkQuorum,“火花流消费者”,topicMap).map(u._2) lines.foreachRDD{rdd=> rdd.foreach{println} ssc.start() ssc.终止协议() } }
注意,
println
代码在执行器上运行,因此您应该在执行器控制台输出中看到输出。 因此,如果您转到spark UI,导航到executors选项卡,并选择一个executor,您应该能够在那里看到输出

例如,如果您在本地运行作业,则可以转到。
如果您使用的是纱线,则可以通过纱线资源管理器UI导航到spark UI。

在代码中进行以下调整:

lines.foreachRDD{
 rdd =>
  rdd.collect().foreach(println)
 }