09_Flink从状态算子到Checkpoint&Savepoint

1. 什么是状态

  • Flink中的状态表示一个operator/task/subtask 某个时刻在内存中的状态
  • 某一时刻,流式处理的多个operator状态形成一个快照snapshot。
  • chekcpoint定期保存多个快照以便数据做恢复。
  • 通过状态可以实现聚合操作,机器学习训练模型迭代,容错,savepoint升级。
  • 流处理程序没有状态的时候,需要保存临时变量,可以保存到redis / hbase中,但是它们不支持事务处理,如果将临时变量放到 mysql中,并发度又不高;而且当程序出现故障恢复,或者改变流处理并发度,记录的状态无法自适应。

在这里插入图片描述

2. Flink丰富的状态访问和高效的容错机制

在这里插入图片描述

状态的分类主要有3类:

  • Operator State:绑定到operator并发实例,每个实例维护一个状态,比如richmap并行度为4,则需维护4个状态。这种状态与key无关,仅支持ListState数据结构
  • Keyed

猜你喜欢

转载自blog.csdn.net/qq285016127/article/details/105184224