开发者社区> 问答> 正文

flink不清理state,从checkpoint恢复任务能重置kafka的offset讨论

Hi everyone: 如题,我遇到有些数据我不应该漏了想回溯部分数据,这个时候我就需要清理state,来重置kafka的offset重新跑,可不可以保留flink任务state,从checkpoint恢复任务的时候重置kafka的offset,并从kafka那个时间段开始消费,而不需要清掉state重新跑数据。*来自志愿者整理的flink邮件归档

展开
收起
小阿怪 2021-12-07 22:02:10 1717 0
1 条回答
写回答
取消 提交回答
  • Flink的kafka consumer一共有三种offset commit模式: 1. OffsetCommitMode.DISABLED 完全disable offset的commit 2. OffsetCommitMode.ON_CHECKPOINTS Flink的默认行为,只有当Flink checkpoint完成时,才会将offset commit到Kafka 3. OffsetCommitMode.KAFKA_PERIODIC 使用Kafka的internal client的默认行为,周期性将offset commit到kafka 如果不想借助checkpoint来重置kafka的offset,可以利用FlinkKafkaConsumerBase 设置 setCommitOffsetsOnCheckpoints(false),以及在kakfa properties里面设置 “auto.commit.enable” 为false,这样就相当于没有commit offset,作业恢复的时候,如果你们设置是从kafka consume from latest,既可以恢复checkpoint中的state(你们应该是想要主要恢复keyed state相关吧),也可以从最新的offset消费。*来自志愿者整理的flink邮件归档

    2021-12-08 10:24:50
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Java Spring Boot开发实战系列课程【第16讲】:Spring Boot 2.0 实战Apache Kafka百万级高并发消息中间件与原理解析 立即下载
MaxCompute技术公开课第四季 之 如何将Kafka数据同步至MaxCompute 立即下载
消息队列kafka介绍 立即下载