Flink大状态和Checkpoint调优

文章迁移,待整理

2. 状态和Checkpoint调优

2.1 大状态调优

我们生产大多数会使用 fsState ,memState程序挂了状态就丢了,应该没人会在生产使用,但是涉及到一些大状态,fsState效率很低,这时候会选择 rocksDbState

  1. RocksDb 为什么效率高

基于 LSM Tree 实现,类似 Hbase 的读写方式,

复制代码
state.backend.local-recovery: true

写数据内存即返回,查数据先查 blockCache,

  1. 开启 state 性能访问监控

开启监控会对性能有影响,但是对 rocksDbStateBackend 来说影响不大,大概 1%,但是有监控可以快速定位问题

java 复制代码
-Dstate.backend.latency-track.keyed-state-enabled=true
  1. 开启增量检查点

    state.backend.incremental: true #默认 false,改为 true。

  2. 开启本地恢复

Flink任务失败时,可以基于本地的状态信息恢复任务

复制代码
state.backend.incremental: true #默认 false,改为 true。
  1. 多目录设置

有多块磁盘,可以考虑设置多目录

复制代码
state.backend.rocksdb.localdir: 
/data1/flink/rocksdb,/data2/flink/rocksdb,/data3/flink/rocksdb

2.2 checkpoint 间隔时长设置

一般checkpoint 间隔时长设置为 1-5分钟,比如阿里云我们都使用默认的 180S,但是对于一些大状态尤其是 Hdfs 储存时比较慢,可以设置 5-10分钟,并且设置两次 Checkpoint 至少间隔 4-8分钟

相关推荐
isNotNullX5 小时前
数据中台有什么用?数据仓库和数据中台怎么选?
大数据·数据仓库·人工智能·数据中台
roman_日积跬步-终至千里6 小时前
【AI Engineering】Should I build this AI application?—AI应用决策框架与实践指南
大数据·人工智能
DolphinScheduler社区6 小时前
图解 Apache DolphinScheduler 如何配置飞书告警
java·大数据·开源·飞书·告警·任务调度·海豚调度
稚辉君.MCA_P8_Java6 小时前
通义千问 SpringBoot 性能优化全景设计(面向 Java 开发者)
大数据·hadoop·spring boot·分布式·架构
SeaTunnel7 小时前
Apache SeaTunnel 如何将 CDC 数据流转换为 Append-Only 模式?
大数据·开源·apache·开发者·seatunnel·转换插件
万山y7 小时前
git remote add做了什么
大数据·git·elasticsearch
六边形架构7 小时前
别再盲目地堆砌技术了!大部份大数据项目的失败,都是因为架构设计没做对!
大数据·系统架构
驾数者8 小时前
DDL实战指南:如何定义和管理动态表
大数据·sql·flink
Hello.Reader9 小时前
Flink CDC 用 OceanBase CDC 实时同步数据到 Elasticsearch
elasticsearch·flink·oceanbase
martian6659 小时前
第九章:如何学习和掌握BI?
大数据·数据仓库·学习·etl·bi