我有很多Kafka主题,每个主题有1个分区,正在生成和使用(REST API - Kafka - SQL服务器)。 但是现在我想定期转储这些数据以保留HDFS,以便在以后进行分析。
由于这基本上只是我需要的转储,我不确定我是否需要火花流。 但是,所有文档和示例都使用Spark流式传输。
有没有办法在没有运行流媒体作业的情况下从Kafka主题填充DF / RDD?或者是这里的范例来杀死"流媒体"处理完最小到最大偏移的设置窗口后的作业? 因此将流媒体作业视为批处理作业。
答案 0 :(得分:1)
您可以使用createRDD
的{{1}}方法进行火花批处理作业。
此处已回答类似的问题 - Read Kafka topic in a Spark batch job
答案 1 :(得分:1)
正如您已经正确识别的那样,您不必为此使用Spark Streaming。一种方法是使用Kafka Connect的HDFS连接器。 Kafka Connect是Apache Kafka的一部分。它需要一个Kafka主题并将消息从它写入HDFS。您可以看到它的文档here。
答案 2 :(得分:0)
Kafka是一个流处理平台,因此使用火花流很容易。
您可以使用Spark流,然后检查指定时间间隔的数据,这符合您的要求。
有关支票指向的更多信息: - https://spark.apache.org/docs/2.0.2/streaming-programming-guide.html#checkpointing