使用 operator state的方式有以下几种:

方式一:

stateful function(RichFunction) 实现 CheckpointFunction 接口

必须实现两个方法:
Void snapshotState(FunctionSnapshotContext context)  throws Exception;

Checkpoint 执行时调用

 

Void initializeState(FunctionInitializationContext context) throws Exception;(初始化以及恢复逻辑)

Stateful function 第一次初始化时调用

Stateful function 从较早的 checkpoint恢复时调用

 

方式二:
stateful function(RichFunction) 实现 ListCheckpointed 接口,只用ListState 的重分配方式

必须实现两个方法

List<T> snapshotState(long checkpointId,long timestamp)  throws Exception;

Checkpoint 执行时调用

void restoreState(List<T> state) throws Exception;

Stateful function 从较早的 checkpoint 恢复时调用。

 

posted on 2020-06-27 21:03  风清_云淡  阅读(772)  评论(0编辑  收藏  举报