我正在编写一个 Spark (v1.6.0) 批处理作业,用于从 Kafka 主题中读取数据。
我可以使用 org.apache.spark.streaming.kafka.KafkaUtils#createRDD
,但是我需要为所有分区设置偏移量,并且还需要将它们存储在某个地方(ZK?HDFS?)以便知道下一个批处理作业从哪里开始。
在批处理作业中从 Kafka 中读取数据的正确方法是什么?
我也考虑编写一个流处理作业,该作业从 auto.offset.reset=smallest
开始读取并将检查点保存到 HDFS,然后在下一次运行时从该处开始。
但是,在这种情况下,我如何只获取一次并在第一批处理之后停止流式处理呢?