【问题标题】:Apache Spark Time based Kafka off set基于 Apache Spark 时间的 Kafka 偏移量
【发布时间】:2019-07-17 16:28:48
【问题描述】:

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

我的 spark 启动器监听来自 5 个分区的 kafka 队列的消息。假设我停止我的 spark 应用程序,那么它将根据我的配置读取最小或最大的偏移值。但是我的 Spark 应用程序应该在我停止后阅读消息。例如,我停止进程 3.00PM 并在 3.30PM 启动 spark 启动器。然后我想在 3.00pm 到 3.30PM 之间阅读所有消息。

【问题讨论】:

  • 您使用什么版本的火花流式传输(标准/结构化)?如果标准:您使用基于接收器的方法还是直接流式传输?
  • org.apache.spark,spa‌​rk-streaming-kafka_2‌​.101.6.0 ‌​

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


【解决方案1】:

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

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

【讨论】:

  • 我正在使用 spark consumer(org.apache.spark,spark-streaming-kafka_2.101.6.0)如果我默认不给出任何偏移量,它的“auto.offset.reset”="largest"。我无法在停止进程和重新开始的时间段之间使用消息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-22
  • 2017-02-06
  • 2018-09-22
  • 2020-01-27
  • 2021-01-15
相关资源
最近更新 更多