将kafka数据传递给HDFS Spark Ba​​tch

时间:2018-04-11 12:00:15

标签: apache-spark apache-kafka hdfs

我有很多Kafka主题,每个主题有1个分区,正在生成和使用(REST API - Kafka - SQL服务器)。 但是现在我想定期转储这些数据以保留HDFS,以便在以后进行分析。

由于这基本上只是我需要的转储,我不确定我是否需要火花流。 但是,所有文档和示例都使用Spark流式传输。

有没有办法在没有运行流媒体作业的情况下从Kafka主题填充DF / RDD?或者是这里的范例来杀死"流媒体"处理完最小到最大偏移的设置窗口后的作业? 因此将流媒体作业视为批处理作业。

3 个答案:

答案 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