【问题标题】:Spark Streaming from Kafka not producing output on console来自 Kafka 的 Spark Streaming 不在控制台上产生输出
【发布时间】:2017-10-25 23:11:51
【问题描述】:

我有以下代码,它将收听一个 kafka 主题并使用火花流按原样重现文本。但是,我无法在控制台上看到文本。我没有在控制台上收到任何错误消息。我可能是错的,但我希望来自 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()
 }
}

【问题讨论】:

    标签: spark-streaming kafka-producer-api


    【解决方案1】:

    注意println 代码在执行器上运行,因此您应该在执行器控制台输出中看到输出。 因此,如果您转到 spark UI,导航到 executors 选项卡,然后选择一个 executor,您应该能够看到那里的输出。

    例如如果您在本地运行作业,可以转到http://localhost:4040。 如果你在 yarn 上运行,你可以通过 yarn ResourceManager UI 导航到 spark UI。

    【讨论】:

      【解决方案2】:

      在您的代码中进行以下调整:

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

      【讨论】:

        猜你喜欢
        • 2020-04-20
        • 2016-11-03
        • 2018-01-21
        • 2018-12-18
        • 1970-01-01
        • 2020-10-11
        • 2019-09-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多