Flink 状态管理

一、状态

流式计算分为无状态和有状态两种情况。无状态的计算观察每个独立事件,并且根据最后一个事件输出结果。例如,流处理应用程序从传感器接收温度读数,并在温度超过90度时发出告警。有状态的计算则会基于多个事件输出结果。例如,计算过去一小时的平均温度。以及在一分钟之内收到两个相差20度以上的温度读数,则发出告警。
在这里插入图片描述
上图中输入数据由黑条表示。无状态流处理每次只转换一条输入记录,并且仅根据最新的输入记录输出结果(白条)。有状态流处理维护所有已处理记录的状态值,并根据每条新输入的记录更新状态,因此输出记录(灰条)反映的是综合考虑多个事件之后的结果

在这里插入图片描述

  • 状态由一个任务维护,并且用来计算某个结果的所有数据,都属于这个任务的状态;
  • 可以认为状态就是一个本地变量,可以被任务的业务逻辑访问;
  • Flink 会进行状态管理,包括状态一致性、故障处理以及高校存储和访问,以便开发人员可以专注于应用程序的逻辑;

二、状态的类型

2.1 算子状态

在这里插入图片描述

  • 算子状态的作用范围限定为算子任务,由同一并行任务所处理的所有数据都可以访问到相同的状态;
  • 状态对于同意子任务而言是共享的;
  • 算子状态不能由相同或不同算子的另一个子任务访问;

列表状态(List state)

  • 将状态表示为一组数据的列表

联合列表状态(Union list state)

  • 也将状态表示为数据的列表。它与常规列表状态的区别在于发生故障时,从保存点启动应用程序时如何恢复

广播状态(Broadcast state)

  • 如果一个算子有多项任务,而它的每项任务状态又相同,那么这种特殊情况最适合应用广播状态。

2.2 键控状态

在这里插入图片描述

  • 键控状态是根据输入数据流中定义的键(key)来维护和访问的;
  • Flink 为每一个 key 维护一个状态实例,并将具有相同键的所有数据都分区到同一个算子任务中,这个任务会维护和处理这个 key 对应的状态;
  • 当任务处理一条数据时,它会自动将状态的访问范围限定为当前数据的key;

值状态(Value state)

  • 将状态表示为单个的值

列表状态(List state)

  • 将状态表示为一组数据的列表

映射状态(Map state)

  • 将状态表示为一组 Key-Value 对

聚合状态(Reducing state & Aggregating state)

  • 将状态表示为一个用于聚合操作的列表

状态后端

状态的存储、访问以及维护,由一个可插入的组件决定,这个组件就叫做状态后端(state backend),状态后端主要负责两件事:本地的状态管理,以及将检查点(checking)状态写入远程存储。

状态后端分类

MemoryStateBackend

  • 内存级的状态后端,会将键控状态作为内存中的对象进行管理,将它们存储在 TaskManager 的 JVM 堆上,而将 checkpoint 存储在 JobManager 的内存中;
  • 特点:快速、低延迟、但不稳定;

FsStateBackend

  • 将 checkpoint 存到远程的持久化文件系统上,而对于本地状态,则跟 MemoryStateBackend 一样,也会存在 TaskManager 的 JVM 堆上;
  • 同时用于内存级的本地访问速度和更好的容错保证;

RocksDBStateBackend

  • 将所有状态序列化后,存入本地的 RocksDB 中存储;

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

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

相关文章

一款开源、高颜值的AI物联网数据平台

介绍 AIOT人工智能物联网平台是一站式物联网开发基础平台,帮助企业快速实现数字化、精细化数据管理。核心系统为:物联网平台 数据中台(数据底座) AI。 同时支持文生图、语音合成等。大模型支持陆续也会慢慢开发。 物联系统介绍…

CLIP 计算过程图解

CLIP 计算过程图解 CLIP模型是OpenAI开发的一种多模态学习模型,它通过学习文本和图像之间的关联,实现了跨模态的语义理解。下面是CLIP模型计算过程的简化描述: 1 数据准备 选取包含文本和图像对的mini-batch,例如"big tab…

【快速入门】Transformer: Attention Is All You Need

Transformer → \to → 【知名应用】BERT (unsupervised trained Transformer) Transformer :seq2Seq model with self-attention, 后续会主要说明 self-attentionTransformer的组成: Self-attention是 Attention变体,擅长捕获数据/特征的内…

完整代码Python爬取豆瓣电影详情数据

完整代码Python爬取豆瓣电影详情数据 引言 在数据科学和网络爬虫的世界里,豆瓣电影是一个丰富的数据源。在本文中,我们将探讨如何使用Python语言,结合requests和pyquery库来爬取豆瓣电影的详情页面数据。我们将通过一个具体的电影详情页面作…

oracle11.2.0.4 RAC 保姆级静默安装(一) GI集群软件

一、响应文件准备 我们直接使用软件解压后的response文件夹中的响应文件模板进行修改 选择当前服务器的主机名,产品目录是在已存在的/u01/app目录基础上自动创建的无需提前创建oraInventory 按需选择语言,具体语言配置参考表格 一般rac默认选择安装类型为CRS_CONFIG 对应正…

借助 NGINX Unit 在服务器端使用 WebAssembly

原文作者:Liam Crilly of F5 原文链接:借助 NGINX Unit 在服务器端使用 WebAssembly 转载来源:NGINX 中文官网 NGINX 唯一中文官方社区 ,尽在 nginx.org.cn WebAssembly(缩写为 Wasm)可为 Web 应用领域提供…

C++ 教程 - 06 类的封装、继承、多态

文章目录 封装继承多态 封装 在private/protected 模块放置数据或者底层算法实现&#xff1b;在public块提供对外接口&#xff0c;实现相应的功能调用&#xff1b;类的封装案例 #include <iostream> using namespace std;// 类的定义 一般放在头文件 class Stu {public…

uniapp——上传图片获取到file对象而非临时地址——基础积累

最近在看uniapp的代码&#xff0c;遇到一个需求&#xff0c;就是要实现上传图片的功能 uniapp 官网地址&#xff1a;https://uniapp.dcloud.net.cn/ 上传图片有对应的API&#xff1a; uni.chooseImage方法&#xff1a;https://uniapp.dcloud.net.cn/api/media/image.html#choo…

没有手机怎么办呐!高考成绩出来了:请不要吹灭别人的灯——早读(逆天打工人爬取热门微信文章解读)

结婚的时候红包随礼随多少呢 引言Python 代码第一篇 洞见 高考成绩出来了&#xff1a;请不要吹灭别人的灯第二篇结尾 为什么是这个标题呢&#xff1f; 是因为摸鱼看足球直播 主播好兄弟结婚 他老婆问他要红包 引言 今天早上停电了 大概是在3点多的时候 我本身一直都没有开空调…

Javac编译器

Java语言的编译器是一段不确定的操作过程&#xff0c;可能是讲Java文件转变为class文件的过程&#xff0c;也可能是指虚拟机的后端编译&#xff0c;讲字节码转换为机器码的过程&#xff0c;还肯是静态提前编译器直接讲Java文件编译为本地机器代码的过程。 前端编译器&#xff…

HTML5五十六个民族网站模板源码

文章目录 1.设计来源高山族1.1 登录界面演示1.2 注册界面演示1.3 首页界面演示1.4 中国民族界面演示1.5 关于高山族界面演示1.6 联系我们界面演示 2.效果和源码2.1 动态效果2.2 源代码2.3 源码目录 源码下载 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.ne…

数字化转型第三步:数字化业务创新与发展,提升收入和利润

引言&#xff1a;之前笔者的文章发布了企业数字化转型业务部分&#xff0c;如【开源节流】如何通过数字化转型增强盈利能力&#xff1f;企业供应链数字化转型如何做&#xff1f;让企业盈利能力增强再飞一会 【财务数字化转型之底座】集团企业财务数据中台系统建设方案 等文章&a…

基于jeecgboot-vue3的Flowable流程-自定义业务表单处理(二)-挂接自定义业务表单

因为这个项目license问题无法开源&#xff0c;更多技术支持与服务请加入我的知识星球。 1、增加一个根据服务名称动态寻找对应自定义表单组件的hooks import { ref, reactive, computed, markRaw, onMounted, defineAsyncComponent } from vue; import { listCustomForm } fro…

Redis之优惠券秒杀

文章目录 全局ID生成器添加优惠券实现优惠券秒杀下单超卖问题悲观锁和乐观锁相关文章乐观锁执行逻辑乐观锁解决超卖问题 一人一单功能超卖问题相关文章一人一单执行逻辑代码实现集群模式下锁失效 分布式锁基于Redis的分布式锁Redis实现分布式锁流程实现分布式锁初级版本分布式锁…

RabbitMQ(消息队列)

RabbitMQ 它是消息中间件&#xff0c;是在消息的传输过程中保存消息的容器&#xff0c;实现应用程序和应用程序之间通信的中间产品。目前主流消息队列通讯协议是AMQP&#xff08;二进制传输&#xff0c;支持多种语言&#xff09;、JMS&#xff08;HTTP传输&#xff0c;只支持J…

要离职了,记录一下个人在用的 Mac 应用

大家好&#xff0c;我是楷鹏。 通用 飞书 说起来不信&#xff0c;第一个推荐的是【飞书】&#xff0c;飞书是目前用过最舒服的项目管理应用了。 单拎出来一个飞书文档&#xff0c;功能和体验远超市面上腾讯文档、石墨文档、语雀等等。 现在飞书还支持个人版&#xff0c;No…

【系统架构设计师】六、信息系统基础知识(定义|分类|企业信息化系统|生命周期|建设原则|开发方法)

目录 一、信息系统的定义 二、信息系统的分类 三、企业使用的信息化系统 四、信息系统的生命周期 五、信息系统建设原则 六、信息系统的开发方法 6.1 结构化方法 6.2 原型法 6.3 构件化开发方法 6.4 面向服务的方法 6.5 面向对象的方法 6.6 敏捷方法 历年真题考情&#x…

还是国产大模型靠谱!这里有一个OpenAI API用户特别搬家计划

近日&#xff0c;一场风波在科技圈引起了广泛的关注。6月25日凌晨&#xff0c;OpenAI向大量开发者发送邮件&#xff0c;通知他们&#xff1a;“您的组织有流量来自来OpenAl目前不支持的地区。从7月9日起&#xff0c;我们将采取额外措施&#xff0c;停止OpenAI不支持的国家和地区…

iOS开发者模式自带弱网测试工具

弱网测试的思路 弱网功能测试&#xff1a;2G/3G/4G、高延时、高丢包 无网状态测试&#xff1a;断网功能测试、本地数据存储 用户体验关注&#xff1a;响应时间、页面呈现、超时文案、超时重连、安全及大流量风险 网络切换测试&#xff1a;WIFI → 4G/3G/2G → 网多状态切换…

①分析胃癌组蛋白脱乙酰酶HDS模型-配对转录组差异

目录 HDS评分构建 ①数据加载 ②评分计算 做样本及评分展示图 ①数据处理 ②进行作图 分析配对的单细胞及转录组胃癌数据的 HDS评分,数据源于gastric-cancer - GitCode①胃癌单细胞和配对转录组揭示胃肿瘤微环境(文献和数据)_代码笔记:处理迄今为止最大的单细胞胃癌数…