flink学习-状态管理

embedded/2024/9/23 10:22:32/

状态管理

flink中,算子可以分为无状态和有状态两种情况。
无状态的算子只需要观察每个独立事件,根据当前输入的数据直接输出结果。像:filter、flatMap、map都属于无状态的算子。
有状态的算子则是除当前数据之外,还需要一些其他数据来计算结果。这里说的其他数据其实就是指状态,聚合算子,窗口算子都应该算是有状态的算子。
状态也可以分为两种,一种是算子状态,一种是按键分区状态(只有进行key 进行分组的)

按键分区状态

  1. 值状态
    值状态就是状态中只保存一个值
  2. 列表状态
    用List的形式存储状态,主要有的方法:get(获取列表状态,返回值迭代类型);update(更新list状态)、add(添加一个元素)、addAll(添加多个)、clear(清空)
  3. Map状态
    用map形式存储状态。
  4. 规约状态
  5. 聚合状态

状态生存时间

因为状态如果长时间保存会导致存储耗尽,通过设置状态的ttl,可以自动清除没有用的状态,当状态在内存中存在的时间超过这个值,就将它清除。

算子状态

在算子状态中,一个子任务就是一个整体
主要几种类型:列表状态、联合列表状态、广播状态
在算子状态中可以进行初始化后,进行持久化防止异常退出时丢失算子状态,
列表状态和联合列表状态区别在于:并行度改变后如何重新分配,list状态:轮询均分给新的并行子任务;unionlist状态:原先多个子任务的状态,合并成一份完成的,分配给每个新的算子一整份。
广播状态:可以作为配置流进行配置,可以实时修改配置。

状态后端

状态后端分类
HashMapStateBacked (哈希表状态后端,使用内存,保存在TaskManager JVM堆,默认使用)
EmbeddedRocksDBStateBackend(内嵌RocksDB状态后端,kv存储,持久化到磁盘,数据存储需要序列化)


http://www.ppmy.cn/embedded/48647.html

相关文章

m2_python字符串-索引与切片

# 索引&#xff1a;查找存取字符串中某一个位置元素[]s "sensizlik"for i in s:print(i)print(s[0]) # 第一个元素 print(s[-1]) # -1倒数第一个元素 print(s[-2]) # -2倒数第二个元素 print("len", len(s)) i 0 while i < len(s):print(s[i…

第三章:Three.js 基本概念

本章将介绍 Three.js 中的核心概念&#xff0c;包括场景&#xff08;Scene&#xff09;、相机&#xff08;Camera&#xff09;、渲染器&#xff08;Renderer&#xff09;、几何体&#xff08;Geometry&#xff09;、材质&#xff08;Material&#xff09;和网格&#xff08;Mes…

LeetCode --- 132双周赛

题目列表 3174. 清除数字 3175. 找到连续赢 K 场比赛的第一位玩家 3176. 求出最长好子序列 I 3177. 求出最长好子序列 II 一、清理数字 这题直接根据题目&#xff0c;进行模拟即可&#xff0c;大体的思路是遍历字符串&#xff0c;遇到字母就加入答案&#xff0c;遇到数字就…

等保测评练习题11

等级保护初级测评师试题11 姓名&#xff1a; 成绩&#xff1a; 判断题&#xff08;10110分&#xff09; 1.国家支持网络运营者之间在网络安全信息收集、分析、通报和应急处置等方面进行合作。&#xff08;T&#xff09; 安全法第二…

max code size exceeded

Warning! Error encountered during contract execution [max code size exceeded] 智能合约编译时提示 contracts/core/CORE.sol:15:1: Warning: Contract code size exceeds 24576 bytes (a limit introduced in Spurious Dragon). This contract may not be deployable on m…

深度解读 ChatGPT基本原理

ChatGPT作为自然语言处理技术中的一个里程碑&#xff0c;其背后的基本原理展现了深度学习和人工智能领域的快速发展。下面将深入探讨ChatGPT的工作原理及其训练过程&#xff0c;并分析其技术实现和应用场景。 ChatGPT技术基础 Transformer架构&#xff1a;ChatGPT基于Transfor…

【Linux】Linux环境基础开发工具_6

文章目录 四、Linux环境基础开发工具gdb 未完待续 四、Linux环境基础开发工具 gdb 我们已经可以写代码了&#xff0c;也能够执行代码了&#xff0c;但是代码错了该如何调试呢&#xff1f;Linux中可以使用 gdb 工具进行调试。 我们写一个简单的程序&#xff1a; 但是我们尝试…

二分+模拟,CF1461D - Divide and Summarize

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 Problem - 1461D - Codeforces 二、解题报告 1、思路分析 我们发现每次分裂操作结果都是固定的 我们从初始序列分裂出两个确定的子序列&#xff0c;两个确定的子序列又分裂出4个确定的子序列 那么也就是说…