Flink学习笔记之九状态和容错

一.理解状态

1.什么是状态

其实是某一个时刻,计算的结果,一般是operator/task,保存在内存,由于Flink分布式的运行,所以根据体系结构runtime,会设计到TaskManager的slot对应具体任务,实质是JVM的运行的一块内存。

容错就涉及到机器故障和重启,某一时刻单台机器挂掉,运行任务的状态也会挂掉。挂掉的话,就涉及一个后端存储,重新跑起来的时候,从后端存储拉起来。

2.状态的作用

3.没有状态的日子

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

5.Operator State

6.Keyed State

7.Keyed State类型

8.两种状态

二.Operator State及重分布redistribute

1.Operator State Redistribute

2.方式1:实现CheckPointedFunction

3.方式2:ListCheckpointed

三.Keyed State和重分布 redistribute

1.Keyed State Redistribute

,本地缓存状态,
numOfKeyGroups 最大并行度


2.Keyed State TTL,量比较大,所以需要TTL

3.Keyed State TTL 相关配置

4.清理策略

5.注意事项

四.Broadcast State

1.类似于Mapreduce的广播,map join,小表广播

2.使用

3.BroadcastProcessFunction

4.KeyedBroadcastProcessFunction

5.注意事项,不能通信是Broadcast只读

五.使用Checkpoint

1.状态容错示意图



2.Checkpointing是什么

3.Checkpointing的前提

4.第一步:启用checkpoint

5.checkpointMode

6.保留策略

,一种是因为某种原因,突然挂了,会保留。
默认认为手工cancel,就是作业不要了,所以不保留。


7.高级选项

8.第二步:选择合适的State Backend

9.MemoryStateBackend

10.FsStateBackend

11.RocksDBStateBackend

12.StateBackend总结,in-flight 代表状态

13.配置StateBackend

14.checkpoint的相关配置

15.使用RocksDBStateBackend

16.第三步:配置重启策略

六.Checkpoint原理

1.Barrier

,必须要事务操作,Barrier之间的就是checkpoint,事务


2.Barrier多并行度对齐

3.exactly Once & At least Once

七.Savepoint

1.savepoint概念

savepoint类比数据库的备份,checkpoint是类比数据库的recovery log


2.assign operator id

也可以指定name,可以在UI上面方便查看


3.触发savepoint

targetDirectory配置文件目录,jobId获取,flink list可以查看,UI可以查看

4.从savepoint恢复job

5.删除savepoint

你可能感兴趣的:(Flink学习笔记之九状态和容错)