首页 > 其他分享 >Flink的State

Flink的State

时间:2024-05-16 14:56:48浏览次数:16  
标签:存储 同一个 Flink state State 内存

    有状态的计算是流式计算框架的一个重要功能,很多复杂的计算场景都需要记录一下相关的状态。Flink State一种为了满足算子计算时需要历史数据需求的,使用 checkpoint 机制进行容错,存储在 state backend 的数据结构。

1.State分类

    Flink State被分为keyedstate、operatorstate、BroadcastState三种;keyedstate主要应用在keystream上,它的特点是同一个子任务的同一个key共享同一个state;另一个operatorstate主要应用应用在source和sink,它的特点是同一个子任务共享同一个state。BroadcastState同一个算子的多个 sub task 共享一个 state。

 

2.state数据结构

    state的数据结构包含ValueState 、MapState 、ListState三种结构。

ValueState 存储单个值,访问接口可能有两种,get 和 set,在 State 上体现的是 update(T) / T value()。
MapState 的状态数据类型是 Map,在 State 上有 put、remove等。
ListState 状态数据类型是 List,访问接口如 add、update 等。

  

存储大的对象时要慎用ValueState 。

3.state存储介质

    state可以存储到内存、文件、RocksDB。

基于内存的 MemoryStateBackend,状态存储在内存中,cp存储到jobmanager的内存中。
基于 HDFS 或 OSS 的 FsStateBackend,状态存储在taskmanger的内存中,在做 cp(checkpoint)时存到文件系统,文件系统可以是HDFS。
基于 RocksDB 的 RocksDBStateBackend,将对象序列化成二进制存在内存和本地磁盘的 RocksDB 数据中,并在 cp 时存到文件系统,文件系统可以是HDFS。

 

 

 

标签:存储,同一个,Flink,state,State,内存
From: https://www.cnblogs.com/beststrive/p/18195967

相关文章

  • Flink执行图
    Flink的代码编写流程为env->source->transform->sink,基本所有的代码都是大致按照图1的流程进行代码编写,当然中间也会有一些封装之类的。  Flink代码写好后,它的任务调度执行图按照生成顺序分为:逻辑流图(StreamGraph)->作业图(JobGraph)->执行图(ExecutionGraph)->物理图(Physica......
  • flink监控数据库表
    背景在日常服务运行中可能会遇到很多数据上的问题,一些我们可以通过日志查询,但是一些修改等操作日志无法查询到,binlog日志不方便查询而且不是所有表都需要日志,增加了查询的难度,我们考虑使用canal或者flink对binlog进行记录,这里flink,flink程序和客户端版本1.17.1pom.xml<?xm......
  • Flink同步mysql到iceberg
    一、如何做一致性保障1、全量数据分片读取,增量数据单并发读取,保证增量阶段不会乱序2、全量阶段写入失败会清空表后重新写入,避免重复数据。3、全量阶段多task并行读取,把每个task开始结束时间提交给FlinkCoordinator,由Coordinator做时间合并后,仅读取一次全量同步区间内变化的binlo......
  • flink sql
    【案例1】Flink01_Table_BaseUsepublicclassFlink01_Table_BaseUse{publicstaticvoidmain(String[]args)throwsException{StreamExecutionEnvironmentenv=StreamExecutionEnvironment.getExecutionEnvironment();env.setParallelism(1);......
  • pyFlink 入门总结
    一整体流程1.初始化pyFlink执行环境2.加载数据集3.执行数据分析4.导出分析结果 二初始化执行环境2.1初始化参考代码如下frompyflink.tableimportEnvironmentSettings,StreamTableEnvironmentes=EnvironmentSettings.new_instance().in_batch_mode().bui......
  • Flink Batch Hash Aggregate
    数据类型要求BatchPhysicalHashAggRulematch条件会判断isAggBufferFixedLength(agg)为什么要求aggCall的类型是FixedLength的才可以使用HashAggregate?因为在HashAggregate中,依赖于BytesHashMap数据结构来存储keyValue数据.而ByteHashMap不支持变长的val......
  • Blazor WebAssembly使用 AuthenticationStateProvider 自定义身份认证
    本文章以客户端基础,实现类似后台系统,进入后台控制台页面需要经过登录身份验证才可访问情况简单来时就是实现前后端分离,前端通过token和用户信息进行身份认证,或者在 AuthenticationStateProvider 实现方法 GetAuthenticationStateAsync 中调用后台接口进行身份验证安装依......
  • 10分钟了解Flink SQL使用
    Flink是一个流处理和批处理统一的大数据框架,专门为高吞吐量和低延迟而设计。开发者可以使用SQL进行流批统一处理,大大简化了数据处理的复杂性。本文将介绍FlinkSQL的基本原理、使用方法、流批统一,并通过几个例子进行实践。1、FlinkSQL基本原理FlinkSQL建立在ApacheFlink之上......
  • 关于VHDL中Loop State error...loop must terminate within 10,000 iterations错误解
    关于VHDL中LoopStateerror...loopmustterminatewithin10,000iterations错误解决方法首先比较下面两段代码:(使用while循环描述偶校验位产生电路)代码一:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;ent......
  • SolidState 靶机 walkthrough
    扫描┌──(root㉿kali)-[/home/kali]└─#nmap-T5-A-v-p-192.168.80.141StartingNmap7.92(https://nmap.org)at2022-10-2403:50EDTNSE:Loaded155scriptsforscanning.NSE:ScriptPre-scanning.InitiatingNSEat03:50CompletedNSEat03:50,0.00......