Spark Streaming Kafka 偏移量 Offset 管理

Posted @SmartSi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spark Streaming Kafka 偏移量 Offset 管理相关的知识,希望对你有一定的参考价值。

传送门:Spark 系统性学习笔记


Apache Spark Streaming 经常与 Kafka 集成使用。但是,用户必须考虑管理 Kafka 的偏移量,以便从故障中恢复流应用程序。在这篇文章中,我们讲解一下如何管理 Kafka 的偏移量,如下提供了几种管理偏移量的方案:

  • 在外部数据存储中存储偏移量 Offset
    • Checkpoints
    • HBase
    • ZooKeeper
    • Kafka
  • 不管理偏移量 Offset

1. 偏移量 Offset 管理概述

Spark Streaming 与 Kafka 的集成允许用户从 Kafka 单个 Topic 甚至多个 Topic 中读取消息。Kafka Topic 通过存储消息的分布式分区来接收消息。每个分区按顺序维护接收到的消息,并用偏移量 Offset 来标识。开发人员可以在 Spark Streaming 作业中通过偏移量 Offset 来控制数据读取的位置,但是这需要好的偏移量 Offset 管理机制。

管理偏移量 Offset 对于保证流式应用程序在整个生命周期中数据的连贯性是非常有益的。例如,如果在应用程序停止或者报错退出之前没有将偏移量 Offset 保存在持久化存储中,那么偏移量范围 Offset Range 就会丢失。此外,如果没有保存每个分区已经读取的偏移

以上是关于Spark Streaming Kafka 偏移量 Offset 管理的主要内容,如果未能解决你的问题,请参考以下文章

Spark Streaming + Kafka:SparkException:找不到Set的领导者偏移量

Spark Streaming整合Kafka实战二

维护偏移量之zookeeper保存Kafka偏移量

spark streaming 和kafka 数据丢失怎么处理

spark维护偏移量二

Note_Spark_Day13:Structured Streaming