我正在尝试使用java中的spark-streaming将数据从kafka存储到hdfs。这是我的一段代码。
JavaInputDStream<ConsumerRecord<String, String>> directKafkaStream =
KafkaUtils.createDirectStream(
ssc,
LocationStrategies.PreferConsistent(),
ConsumerStrategies.<String, String>Subscribe(topics, kafkaParams)
);
directKafkaStream.foreachRDD(rdd -> {
rdd.saveAsTextFile("hdfs://.../sampleTest.txt");
rdd.foreach(record -> {
System.out.println("Got the record : ");
});
});
ssc.start();
ssc.awaitTermination();
这些是我正在使用的sbt库依赖项:
"org.apache.kafka" % "kafka-clients" % "0.8.2.0",
"org.apache.spark" %% "spark-streaming" % "2.2.0",
"org.apache.spark" %% "spark-streaming-kafka-0-10" % "2.0.0",
在消费者策略中,我订阅了主题列表和kafka配置。但是当我使用kafka发送数据时,没有文件在hdfs中生成。 此外,当我运行jar文件时,它显示sparkstreamingcontext已启动,但之后没有打印确认消息。 我在这里遗漏了什么,还是火花流卡夫卡依赖性不匹配的问题?