Flink 状态管理

  • 1.MemoryStateBackend(Default)
    • 内存级的状态后端,会将键控状态作为内存中的对象进⾏管理,将它们存储在 TaskManager 的
    JVM 堆上,⽽将 checkpoint 存储在 JobManager 的内存中
    • 特点:快速、低延迟,但不稳定
  • 2.FsStateBackend
    • 将 checkpoint 存到远程的持久化⽂件系统( FileSystem )上,⽽对于本地状态,跟
    MemoryStateBackend ⼀样,也会存在 TaskManager 的 JVM 堆上
    • 同时拥有内存级的本地访问速度,和更好的容错保证
  • 3.RocksDBStateBackend
    • 将所有状态序列化后,存⼊本地的 RocksDB 中存储。
    • RocksDB 是⼀个硬盘 KV 数据库, LevelDB , RocketDB
package com.claroja;

import org.apache.flink.runtime.state.filesystem.FsStateBackend;
import org.apache.flink.streaming.api.datastream.DataStreamSource;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;

public class CheckPoint {
    public static void main(String[] args) throws Exception {
        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
        env.setParallelism(1);
        // 每隔10s做一次保存检查点操作
        env.enableCheckpointing(10 * 1000L);
        // 设置状态后端
        env.setStateBackend(new FsStateBackend("file:///E:\\"));
        DataStreamSource<SensorReading> stream = env.addSource(new SensorSource());
        stream.print();
        env.execute();
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值