flink学习文档四 checkpoint机制

news2024/11/25 18:11:21

 目的

checkpoint作为flink保障任务稳健运行的一个重要机制,在日常使用和flink

学习框架图

简单创建一个FlinkKafkaConsumer

kafka是大数据中常用的消息存储中间件,也是flink任务中最常用的source源之一,因此flink 也为 kafka提供了内置的连接接口 FlinkKafkaConsumer。flink可以在FlinkKafkaConsumer上配合check point 机制实现了exactly one模式,其中的使用逻辑与我们常用搞得kafka消费者不同。

创建一个FlinkKafkaConsumer:
        
 

        Properties properties = new Properties();
        properties.setProperty("bootstrap.servers", "cdh3:9092, cdh4:9092, cdh5:9092");  # 设置
        properties.setProperty("group.id", "cliu01");  # 设置kafka的消费组
        FlinkKafkaConsumer<String> kafkaConsumer = new FlinkKafkaConsumer<>("userCenterUserInfo", new SimpleStringSchema(), properties);

FlinkKafkaConsumer的运行模式

1. setStartFromEarliest  ->  从最早的数据消费:

说明:直接从连接的kafka集群中可读数据中offset最小的那条数据开始读取。(通常来说就是kafka未被清楚数据中最早的那条开始读取处理)
模式选用示例:

kafkaConsumer.setStartFromEarliest();

2. setStartFromSpecificOffsets  ->  从指定的偏移量开始消费数据:

说明:比较常用的一种模式,指定kafka集群上每个提供服务的节点 对应的起始偏移量。flink将从各个节点的指定偏移量进行数据读取。

获取某个消费组当前在kafka的消费位置,可以在公司提供的kafka运维工具上查看 或者在kafka的集群上执行以下命令(从其他kafka命令介绍的博客薅的示例):

kafka-consumer-groups.sh --bootstrap-server master:9092 --describe --group {你的消费组名称}

结果如下:

current-offset:表示kafka集群记录到的消费组当前消费到的位置。

log-end-offset:表示kafka集群接收到的所有消息的偏移量。

lag:当前消费组的数据积压情况。(log-end-offset    减去  current-offset )

模式选用示例:
 

        Map<KafkaTopicPartition, Long> kafkaOffsetInfo = new HashMap(){{
            put(new KafkaTopicPartition("topic名称", 分片Id1), 分片Id1上的偏移量信息);
            put(new KafkaTopicPartition("topic名称", 分片Id2), 分片Id2上的偏移量信息);
            put(new KafkaTopicPartition("topic名称", 分片Id3), 分片Id3上的偏移量信息);
        }};
        kafkaConsumer.setStartFromSpecificOffsets(kafkaOffsetInfo);


3.setStartFromGroupOffsets  ->  从消费组的偏移量开始消费

说明:flink开启检查点之后默认的消费模式。因为kafka的二段提交机制,通常在启用checkpoint功能的flink任务的消费组偏移量 等于 flink生成检查点时的偏移量。所以该模式等价于从上个保存成功的检查点时的消费位置进行消费。

示例:

kafkaConsumer.setStartFromGroupOffsets();


4.setStartFromTimestamp  ->  从指定时间戳之后消费数据

说明:指定的时间戳需要比当前时间迟,通常在指定时间进行项目上线的时候进行使用。是kakfa自带的消费模式。

示例:
 

kafkaConsumer.setStartFromTimestamp(1621872000000L);  #毫秒时间戳  从kafka在2021-05-25 00:00:00之后接收到的数据开始消费 

5.setStartFromLatest  ->  从最新位置消费数据

说明:无

示例:
 

kafkaConsumer.setStartFromLatest();

预告

接下会更新flink的exactly-once精准一次是如何实现的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/647805.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(UE5 5.2)HISM Mobile DrawInstance在渲染层的实现浅分析

在 (UE4 4.27) UHierarchicalInstancedStaticMesh(HISM)原理分析 这篇博客大致介绍HISM组件从游戏线程到渲染线程的重建KD-Tree和剔除并提交DrawCall逻辑&#xff0c;但是没有分析渲染层的大致数据结构和实现. FHierarchicalStaticMeshSceneProxy的相关数据结构 可以看出FHier…

YOLOv5改进系列(9)——替换主干网络之EfficientNetv2

【YOLOv5改进系列】前期回顾: YOLOv5改进系列(0)——重要性能指标与训练结果评价及分析 YOLOv5改进系列(1)——添加SE注意力机制

C++ 设计模式----组件协作型模式

面向对象设计&#xff0c;为什么&#xff1f; 回答&#xff1a;变化是复用的天敌&#xff01;面向对象设计最大的优势在于&#xff1a;抵御变化 重新认识面向对象 理解隔离变化 ​ 从宏观层面来看&#xff0c;面向对象的构建方式更能适应软件的变化&#xff0c;能将变化所…

LLMs:OpenAI 官方文档发布提高 GPT 使用效果指南—GPT最佳实践(GPT best practices)翻译与解读

LLMs&#xff1a;OpenAI 官方文档发布提高 GPT 使用效果指南—GPT最佳实践(GPT best practices)翻译与解读 导读&#xff1a;为了获得优质输出&#xff0c;需要遵循几点基本原则&#xff1a; >> 写清楚指令&#xff1a;将任务和期望输出描述得尽可能清楚。GPT 无法读取您…

NLP——Question Answering 问答模型

文章目录 2 key approachesInformation retrieval-based QAQuestion Processing 问题处理Answer Types Retrieval 文档检索Answer Extraction 答案提取 Knowledge-based QASemantic Parsing 语义解析 Hybrid QAEvaluation 2 key approaches Information retrieval-based QA 基于…

JSBridge

在Hybrid模式下&#xff0c;H5会经常需要使用Native的功能&#xff0c;比如打开二维码扫描、调用原生页面、获取用户信息等&#xff0c;同时Native也需要向Web端发送推送、更新状态等&#xff0c;而JavaScript是运行在单独的JS Context中&#xff08;Webview容器、JSCore等&…

mysql select是如何一步步执行的呢?

mysql select执行流程如图所示 server侧 在8.0之前server存在查询语句对应数据的缓存&#xff0c;不过在实际使用中比较鸡肋&#xff0c;对于更新比较频繁、稍微改点查询语句都会导致缓存无法用到 解析 解析sql语句为mysql能够直接执行的形式。通过词法分析识别表名、字段名等…

IIC总线实验

IIC总线实验 一、IIC总线基础概念 1、I2C总线是PHLIPS公司在八十年代初推出的一种同步串行半双工总线&#xff0c;主要用于连接整体电路。 2、I2C总线为两线制&#xff0c;只有两根双向信号线 3、一根是数据线SDA&#xff0c;另一根是时钟线SCL 4、I2C硬件结构简单&#xf…

第四章 模型篇:模型训练与示例

文章目录 SummaryAutogradFunctions ()GradientBackward() OptimizationOptimization loopOptimizerLearning Rate SchedulesTime-dependent schedulesPerformance-dependent schedulesTraining with MomentumAdaptive learning rates optim.lr_scheluder Summary 在pytorch_t…

一分钟学一个 Linux 命令 - find 和 grep

前言 大家好&#xff0c;我是 god23bin。欢迎来到《一分钟学一个 Linux 命令》系列&#xff0c;每天只需一分钟&#xff0c;记住一个 Linux 命令不成问题。今天需要你花两分钟时间来学习下&#xff0c;因为今天要介绍的是两个常用的搜索命令&#xff1a;find 和 grep 命令。 …

Spring是什么?

目录 1、Spring的简介 2、Spring七大功能模块 3、Spring的优点 4、Spring的缺点 5、Sprig容器 6、Spring的生态圈&#xff08;重点&#xff09;***** 7、Spring中bean的生命周期 1、Spring的简介 Spring的英文翻译为春天&#xff0c;可以说是给Java程序员带来了春天&…

认识泛型

目录 什么是泛型 引出泛型 语法 泛型类的使用 语法 示例 类型推导(Type Inference) 裸类型(Raw Type) 小结&#xff1a; 泛型如何编译的 擦除机制 为什么不能实例化泛型类型数组 泛型方法 定义语法 泛型接口 泛型数组 什么是泛型 一般的类和方法&#xff0c…

013:解决vue中不能加载.geojson的问题

第013个 查看专栏目录: VUE — element UI 本文章目录 问题状态造成这个结果的原因&#xff1a;解决办法Vue Loader 其他特性&#xff1a;专栏目标 问题状态 在做vue项目的时候&#xff0c;碰到这样一个问题&#xff0c;vue页面中引用一个.geojson文件&#xff0c;提示如下错误…

Redis-原生命令

string 单值 set key value get key 对象 set user:1 value Mset user:1:name zhangsan user:1:sex man Mget user:1:name user:1:sex 分布式锁 setnx product:1001 true 计数器/全局序列号维护 incr article:readcount:{文章id} get article:readcount:{文章id} 哈希hash…

JavaEE语法第一章、计算机工作原理

【计算机科学速成课】[40集全/精校] - Crash Course Computer Science_哔哩哔哩_bilibili 目录 一、计算机发展史 二、冯诺依曼体系&#xff08;Von Neumann Architecture&#xff09; 三、CPU简单介绍 3.1CPU介绍 3.2并行和并发 四、操作系统&#xff08;Operating Syste…

【netty基础四】netty与nio

文章目录 一. 反应堆1. 堵塞模型2. Java NIO的工作原理 二. Netty与NIO 一. 反应堆 1. 堵塞模型 阻塞I/O在调用InputStream.read()方法时是阻塞的&#xff0c;它会一直等到数据到来&#xff08;或超时&#xff09;时才会返回&#xff1b; 同样&#xff0c;在调用ServerSocke…

PN7160 card emulation

AN13861.pdf 1 简介 本文档的目的是举例说明如何为特定的 CE 场景正确设置卡仿真 (CE)。 有关 CE 体系结构的详细说明&#xff0c;请查看用户手册 [5]。 卡仿真的硬件设置&#xff0c;参考[13]和[14]。 要求&#xff1a; • MCUXpresso 和/或Android 和/或Linux 的知识 • PN…

[游戏开发]Unity多边形分割为三角形_耳切法

[ 目录 ] 0. 前言1. 耳切法&#xff08;1&#xff09;基础的概念&#xff08;2&#xff09;耳点判断&#xff08;3&#xff09;判断角度类型&#xff08;4&#xff09;点是否在三角形内&#xff08;5&#xff09;判断顺逆时针 2. 耳切法小优化3. 耳切法实现&#xff08;1&#…

openGauss5 企业版之常用运维命令

文章目录 日维护检查项检查openGauss状态检查锁信息统计事件数据对象检查SQL报告检查备份基本信息检查 检查操作系统参数检查办法异常处理 检查openGauss健康状态检查办法 本章节主要介绍在 openGauss数据库 在日常运维中的常用命令 日维护检查项 检查openGauss状态 通过open…

Java性能权威指南-总结13

Java性能权威指南-总结13 堆内存最佳实践减少内存使用减少对象大小延迟初始化 堆内存最佳实践 减少内存使用 减少对象大小 对象会占用一定数量的堆内存&#xff0c;所以要减少内存使用&#xff0c;最简单的方式就是让对象小一些。考虑运行程序的机器的内存限制&#xff0c;增…