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)
}