Apache spark 无法通过spark流使用kafka消息
我试图通过spark流媒体程序来使用卡夫卡制作人的信息 这是我的节目Apache spark 无法通过spark流使用kafka消息,apache-spark,apache-kafka,spark-streaming,kafka-consumer-api,Apache Spark,Apache Kafka,Spark Streaming,Kafka Consumer Api,我试图通过spark流媒体程序来使用卡夫卡制作人的信息 这是我的节目 val Array(zkQuorum, group, topics, numThreads) = args val sparkConf = new SparkConf().setAppName("KafkaWordCount").setMaster("local") val ssc = new StreamingContext(sparkConf, Seconds(5)) val to
val Array(zkQuorum, group, topics, numThreads) = args
val sparkConf = new SparkConf().setAppName("KafkaWordCount").setMaster("local")
val ssc = new StreamingContext(sparkConf, Seconds(5))
val topicMap = topics.split(",").map((_, numThreads.toInt)).toMap
val lines = KafkaUtils.createStream(ssc, zkQuorum, group, topicMap).map(_._2)
// lines.print()
lines.foreachRDD(rdd=>{
rdd.foreach(message=>
println(message))
})
上述程序正在成功运行。但是我看不到任何消息被打印。使用
“local[*]”设置主url。
您还可以尝试调用collect()并查看是否收到消息
lines.foreachRDD { rdd =>
rdd.collect().foreach(println)
}
我不想使用收集。这不是有效的,因为我将获得10 k到50 k的记录。我测试了你为打印而编写的循环,这对我来说很好。我只是想让您在收到消息时使用collect()进行检查。检查您的主题名称。如果可以看到消息,是否尝试使用kafka console consumer?我可以在kafka consumer和collect()中看到消息。您测试的内容我不明白?
lines.foreachRDD { rdd =>
rdd.collect().foreach(println)
}