基于Apache Spark Time的Kafka off set

时间:2017-10-20 17:16:26

标签: java apache-spark apache-kafka spark-streaming

我正在使用spark consumer(来自spa‌​rk-streaming-kafka_2‌​.10版本 1.6.0 )。

我的spark启动器从kafka队列监听带有5个分区的消息。假设我停止了我的spark应用程序然后它会根据我配置的内容读取最小或最大的偏移值。但是我停止后,我的Saprk应用程序应该读取meesage。例如我停止处理3.00PM并在下午3点30分启动spark启动器。然后我想在下午3点到3点30分之间阅读所有消息。

1 个答案:

答案 0 :(得分:0)

我希望您使用Kafka图书馆的高级消费者。在这种情况下,他们将保持定期提交偏移量,Kafka本身维护Zookeeper或某些Kafka主题中的偏移记录。因此,当您在一段时间后重新启动组中的消费者时,他们将从他们离开的地方开始。偏移记录用作消费者在重新启动或重新平衡时应开始消费的标记。偏移提交可以自动发生,也可以明确提交。在任何一种情况下,消息处理和偏移提交都不会以原子方式发生,因此在重新启动消费者的情况下,很可能会再次处理很少的消息。

最小和最大的偏移值仅在我们第一次启动消费者群体中的消费者时才相关,因为没有可供消费者使用的偏移记录来指示他们应该从哪个偏移(分区的)开始耗时。