flink之statebackend

MemoryStateBackend

env.setStateBackend(new MemoryStateBackend("file://" + baseCheckpointPath,null).configure(conf,classLoader))

- state状态数据存储在taskmanager内存

- checkpoint数据存储在jobmanager内存

- 单state大小默认是5M,最高不能超过10M

- 总大小不能超过jobmanager的大小

- 默认的存储方式

FsStateBackend

env.setStateBackend(new FsStateBackend(tmpPath))  tmpPath是指的是本地文件路径或这是hdfs路径

- state状态数据存储在taskmanager内存

- checkpoint存储在外部的文件系统

- taskmanager上的state存储不能超过TM内存大小

- 总数据大小不能超过文件系统的总量

RocksDBStateBackend

env.setStateBackend(new RocksDBStateBackend("file://"+baseCheckpointPath).configure(conf,classLoader))

- state存储在kv数据库中(实际使用内存+磁盘)

- checkpoint存储在外部文件系统

- 单state 存储上限是内存加磁盘

- checkpoint不能超过文件系统大小

- 单key总大小不超过2G

statebackend的配置

对应全局任务的配置  flink-conf.yaml中设定
 

//可选参数  jobmanager filesystem rocksdb

state.backend:filesystem 

state.checkpoint.dir: hdfs://namenode:8020/flink/checkpoints

 

job中指定
 

StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment()

env.setStateBackend(new FsStateBackend("hdfs://namenode:40010/flink/checkpoints"))

rocksdb statebackend适合可以增量的保存

RocksDBStateBackend
RocksdbstateBackend.
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值