在Spark批处理作业中阅读Kafka主题

Bru*_*ald 7 scala apache-kafka apache-spark spark-streaming kafka-consumer-api

我正在写一个Spark(v1.6.0)批处理作业,它从Kafka主题中读取.
为此,我可以使用org.apache.spark.streaming.kafka.KafkaUtils#createRDD,我需要设置所有分区的偏移量,还需要将它们存储在某处(ZK?HDFS?),以了解从哪里开始下一个批处理作业.

批处理作业中从Kafka读取的正确方法是什么?

我也在考虑编写流式作业,它从auto.offset.reset=smallestHDFS 读取并保存检查点,然后在下一次运行中从它开始.

但在这种情况下,我怎样才能获取一次并在第一批后停止流式传输?

Cod*_*ger 4

createRDD是从 kafka 读取批次的正确方法。

要查询有关最新/最早可用偏移量的信息,请查看KafkaCluster.scala方法getLatestLeaderOffsetsgetEarliestLeaderOffsets。该文件是private,但应该位于publicSpark 的最新版本中。