说说Flink中的State
分析&回答
基本类型划分
在Flink中,按照基本类型,对State做了以下两类的划分:
- Keyed State,和Key有关的状态类型,它只能被基于KeyedStream之上的操作,方法所使用。我们可以从逻辑上理解这种状态是一个并行度操作实例和一种Key的对应, <parallel-operator-instance, key>。保存State的数据结构:ValueState、ListState、MapState、ReducingState、AggregatingState<IN,OUT> 等
- Operator State(或者non-keyed state) ,它是和Key无关的一种状态类型。相应地我们从逻辑上去理解这个概念,它相当于一个并行度实例,对应一份状态数据。因为这里没有涉及Key的概念,所以在并行度(扩/缩容)发生变化的时候,这里会有状态数据的重分布的处理。⽐如:Flink中的KafkaConnector就使⽤了 Operator State,它会在每个Connector实例中,保存该实例消费Topic的所有(partition,offset)映射。如下图:

组织形式划分
但是在这里还有一种按照组织形式的划分,也可以理解为按照runtime层面的划分,又可以分为一下两类:
- Managed State,这类State的内部结构完全由Flink runtime内部来控制,包括如何将它们编码写入到checkpoint中等等。
- Raw State,这类State就比较显得灵活一些,它们被保留在操作运行实例内部的数据结构中。从Flink系统角度来观察,在checkpoint时,它只知道的是这些状态数据是以连续字节的形式被写入checkpoint中。等待进行状态恢复时,又从字节数据反序列化为状态对象。
Managed State可以在所有的data stream相关方法中被使用,官方也是推荐优先使用这类State,因为它能被Flink runtime内部做自动重分布而且能被更好地进行内存管理。
反思&扩展
State Time-To-Live (TTL)
在Flink内部,我们能够对State设置TTL,使其状态过期然后被系统清理掉。针对State TTL,可详见StateTtlConfig类的配置设置。
另类的一种State:Broadcast State模式
Broadcast State具有Broadcast流的特殊属性,它是一种小数据状态广播向其它流的形式,从而避免大数据流量的传输。在这里,其它流是对广播状态只有只读操作的允许,因为不同任务间没有跨任务的信息交流。一旦有运行实例对于广播状态数据进行更新了,就会造成状态不一致现象。
State的可查询性
State状态是一类能够反映任务当前执行情况的信息数据。所以当我们想要了解任务的执行情况时,我们就会想能不能够去查询里面的状态信息呢?Flink官方给出的答案是可以的,它有提供相关的API不过还不保证其完全稳定性。而且这里有一点需要注意,当我们对状态进行查询时,同时地它的信息被并发修改。Flink为了避免Job的处理延时,并没有对此做完全地同步控制。
除了通过API的获取方式外,这里还支持一种*QueryableStateStream 来获取状态数据的方式。任务状态数据将会更新到QueryableStateStream *流中,可以理解为是State的一个sink。
定制化State序列化/反序列实现
Flink内部支持定制化的State序列化器/反序列化实现。这里的序列化过程指的是将状态数据序列为字节数据写到checkpoint中,再从checkpoint文件字节数据反序列为状态对象数据。针对不同类型的State数据,可以定义各自不同的序列化/反序列的实现。
State的序列化演进
这来还存在异构序列化实现的演进问题,因为存在一种情况,任务在恢复状态数据时,会由新的序列化引入。如果出现新的序列化实现无法读取老的状态数据,那么需要做一个兼容性的改动,进行状态迁移,或者先用老的序列化实现读取老状态,然后新的状态用新的序列化方式写出。
State在Flink任务的运行时保存了非常重要的数据,明白如何去更好地使用State将会对我们了解,恢复任务有着很大的帮助。
喵呜面试助手:一站式解决面试问题,你可以搜索微信小程序 [喵呜面试助手] 或关注 [喵呜刷题] -> 面试助手 免费刷题。如有好的面试知识或技巧期待您的共享!
相关文章:
说说Flink中的State
分析&回答 基本类型划分 在Flink中,按照基本类型,对State做了以下两类的划分: Keyed State,和Key有关的状态类型,它只能被基于KeyedStream之上的操作,方法所使用。我们可以从逻辑上理解这种状态是一…...
适合心理法律在线咨询预约含视频图文电话咨询功能的小程序开发
目前智能手机普及,很多以前需要线下咨询的场景都被搬到了线上,这样既可以使咨询者更方便,也可以使被咨询者接待效率更高,服务更多咨询者。基于此我们开发了专门的一款具有线上咨询功能的小程序,同时为了方便被咨询者服…...
Redis-Cluster集群操作--添加节点、删除节点
一、环境部署 部署好Redis-Cluster集群,参考上个本人的博客:Redis-Cluster集群的部署(详细步骤)_是胡也是福的博客-CSDN博客 新准备一台机器,修改主机名,关闭防火墙和selinux,参考:…...
ModaHub魔搭社区:星环科技向量数据库Hippo社区版来啦
大语言模型正在与企业应用迅速结合,并深刻改变企业的各个产业环节。而大模型训练所使用的数据包含了如文档、图片、音视频等各种类型的非结构化数据,传统关系型数据库能力有限。通过将这些非结构化数据转换为多维向量,可以结构化地在向量数据库中进行管理,实现高效的数据存…...
gitHub添加ssh
gitHub添加ssh 首先你需要有一个github的账户 第一步: 打开终端,输入以下命令,注意“your email”处你自己的邮箱,创建新的ssh ssh-keygen -t ed25519 -C “your email” 第二步:使用ssh登录ssh-agent,终端…...
sql:SQL优化知识点记录(十)
(1)慢查询日志 Group by的优化跟Order by趋同,只是多了一个having 开启慢查询日志: 演示一下慢sql:4秒之后才会出结果 查看一下:下方显示慢查询的sql (2)批量插入数据脚本 函数和存…...
STM32 RTC实验
RTC时钟简介 STM32F103的实时时钟(RTC)是一个独立的定时器。 STM32的RTC模块拥有一组连续计数的计数器,在相对应的软件配置下,可提供时钟日历的功能。 修改计数器的值可以重新设置系统的当前时间和日期。 RTC模块和时钟配置系统…...
C#设计打开文件
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System...
mysql指令行登录如何添加mysql.sock的配置?(亲测)
在 MySQL 的命令行登录中,你可以使用 --socket 参数来指定 MySQL 的 Unix 套接字文件(mysql.sock)的位置。以下是使用 --socket 参数进行 MySQL 命令行登录的示例: mysql --socket/path/to/mysql.sock -u username -p 将 /path…...
Git 设置和清除用户名和邮箱
作为一款十分流行的版本控制工具,Git 得到了越来越多的开发者的喜爱。然而,当使用 Git 上传代码的时候,很多开发者都会遇到一个问题,那就是如果在提交代码时错误地设置了用户名和邮箱,那么这些信息就会被永久地记录在 …...
【系统设计系列】 回顾可扩展性
系统设计系列初衷 System Design Primer: 英文文档 GitHub - donnemartin/system-design-primer: Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards. 中文版: https://github.com/donnemart…...
科兴未来 |轨道交通专业赛 第十二届中国创新创业大赛
一、大赛主题 产业赋能 创享未来 二、参赛方向 1.自主可控的关键核心技术。面向“一带一路”国际市场、国内区域/市域轨道交通一体化需求,征集不同轨制、供电制式、通信信号、交通方式、载运工具等跨标准体系的适配关键应用技术,包括但不限于:列车自动…...
leetcode 42. 接雨水
2023.8.29 本题可以用双指针做,求出每一列能盛的雨水,再相加即可。不过暴力法会超时,需要优化。 双指针(暴力): class Solution { public:int trap(vector<int>& height) {int ans 0;for(int …...
【Lychee图床】本地电脑搭建私人图床,公网远程访问
文章目录 1.前言2. Lychee网站搭建2.1. Lychee下载和安装2.2 Lychee网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4.公网访问测试5.结语 1.前言 图床作为图片集中存放的服务网站,可以看做是云存储的一部分,既可…...
【MySQL系列】-ORDER BY……HAVING详解及limit
💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …...
浅析Keil MDK下串行Flash的下载算法设计
浅析Keil MDK下串行Flash的下载算法设计-电子发烧友网 今天给大家介绍的是 Keil MDK 工具下 i.MXRT 的串行 NOR Flash 下载算法设计。 在 i.MXRT 硬件那些事系列之《在串行 NOR Flash XIP 调试原理》一文中,痞子衡简单提了一下串行 NOR Flash 下载算法的概念&…...
springboot自动装配原理,手写一个starter。
文章目录 springboot自动装配原理手写starter手写starter总结: springboot自动装配原理 口述: springboot自动装配的话它其实就是只需要我们添加一个starter起步依赖,它就能完成这个依赖组件相关Bean的自动注入,其实就是自动的将…...
革命性的电子元件:RAD继电器 | 百能云芯
在现代电子和通信系统中,RAD继电器是一种关键的电子元件,它在各种应用中发挥着重要作用。RAD继电器(Reed-relay Actuated Device)是一种基于磁性原理的电子开关,其特点是极其高速、可靠、低功耗和长寿命。下面云芯将为…...
文献阅读:Deep Learning Enabled Semantic Communication Systems
目录 论文简介关于文章内容的总结引申出不理解的问题 论文简介 作者 Huiqiang Xie Zhijin Qin Geoffrey Ye Li Biing-Hwang Juang 发表期刊or会议 《IEEE TRANSACTIONS ON SIGNAL PROCESSING》 发表时间 2021.4 这篇论文由《Deep Learning based Semantic Communications: A…...
巨人互动|游戏出海游戏出海效果怎样?
游戏出海是指将原本面向国内市场的游戏产品进行调整和优化,以适应海外市场的需求,并进行推广和销售。下面小编讲讲关于游戏出海对于游戏效果的影响的一些讨论点。 1、市场扩大 通过游戏出海,可以将游戏产品的目标受众从国内扩展到全球范围内…...
【免费下载】 FFmpeg 6.0 Android 编译库
FFmpeg 6.0 Android 编译库 简介 本仓库提供了一个预编译的 FFmpeg 6.0 库,专门为 Android 平台编译。该库基于 NDK 25C 进行编译,并集成了 v4l2 视频采集和 pulse 音频采集功能。 资源文件描述 FFmpeg 版本: 6.0编译工具链: NDK 25C平台: Android集成功…...
终极免费Steam创意工坊下载器:3分钟快速上手WorkshopDL完整指南
终极免费Steam创意工坊下载器:3分钟快速上手WorkshopDL完整指南 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在Epic Games Store或GOG平台购买了游戏&…...
IL-4诱导的M2INF巨噬细胞在二型免疫疾病及感染防御中的机制研究
摘要郑世进课题组通过深入研究IL-4诱导的M2INF巨噬细胞,揭示了其产生机制主要涉及糖代谢途径的重编程和组蛋白H3K4位点甲基化修饰的改变。这一发现为理解二型免疫疾病的发生发展提供了新的视角,并为相关疾病的治疗策略提供了理论依据。通过在小鼠模型&am…...
硬件安全漏洞披露与静态侧信道攻击防御实践
1. 漏洞披露流程与行业实践在硬件安全研究领域,负责任披露(Responsible Disclosure)是研究人员发现关键漏洞后的标准操作流程。以我们团队发现的AMD和Microchip芯片漏洞为例,完整披露过程通常包含以下关键阶段:漏洞确认…...
将 Hermes Agent 工具连接到 Taotoken 自定义模型提供方
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 将 Hermes Agent 工具连接到 Taotoken 自定义模型提供方 Hermes Agent 是一款功能强大的 AI 智能体开发工具,它支持通过…...
DxO PureRAW中文破解版
🔥RAW图像降噪神器!DxO PureRAW中文破解版来了!🚀哈喽,各位摄影老铁们好呀!👋👋 今天给大家安利一款超级硬核的RAW图像处理工具—— ✨ DxO PureRAW ✨ 这可是 DxO Labs 旗下的行业领…...
环境科学论文降AI工具免费推荐:2026年环境科学研究生毕业论文降AI知网维普99.26%4.8元完整指南
环境科学论文降AI工具免费推荐:2026年环境科学研究生毕业论文降AI知网维普99.26%4.8元完整指南 整理了一份环境科学论文降AI的完整选购指南,按性价比排序。 首推嘎嘎降AI(www.aigcleaner.com),4.8元,99.2…...
视觉优先无人机避障系统ViSafe:高速场景下的安全解决方案
1. ViSafe系统概述:视觉优先的高速无人机避障方案 在无人机技术快速发展的今天,空域安全已成为行业面临的核心挑战。传统避障系统依赖雷达、ADS-B等主动传感器,但这些方案对小型无人机(sUAS)存在明显的适用性瓶颈——尺…...
切削液防锈成分消耗机理、三类防锈剂参数与补加管控实测
一、防锈成分消耗核心机理物理消耗:工件表面携带(占比 35%)、切屑比表面积吸附(占比 40%);化学消耗:金属界面化学吸附(15%)、高温裂解(5%)、细菌降…...
kernelbase.dll 怎么修复?按电脑小白能看懂的步骤来
看到 kernelbase.dll 缺失,很多人会担心是不是系统坏了。其实大多数 kernelbase.dll 报错都能按步骤排查,不需要一开始就重装系统,也不需要马上去下载单个 DLL 文件。下面这套方法按普通用户能操作的顺序来写。每一步只处理一个方向ÿ…...
