Apache Flink:操作员状态检查点

时间:2018-10-31 13:23:03

标签: apache-flink flink-streaming

在下面的示例中,我想使用Operator State API中的No-Keyed Stream保存count的状态。我该怎么办?

public static class MapFunction implements MapFunction<String, String>,CheckpointedFunction{
    int count = 0;
    @Override
    public String map(String value) throws Exception {
        // TODO Auto-generated method stub
            String message;
            message = value;
            count++;
            return message;
    }

    @Override
    public void snapshotState(FunctionSnapshotContext context) throws Exception {
        // TODO Auto-generated method stub
    }

    @Override
    public void initializeState(FunctionInitializationContext context) throws Exception {
        // TODO Auto-generated method stub
    }

}

谢谢您的回答。

1 个答案:

答案 0 :(得分:1)

正如Dawid所指出的那样,文档是一个很好的起点。最简单的方法是为您实现ListCheckpointed接口。调用snapshotState()时,您将返回count的单例列表(作为Integer)。调用restoreState()时,您将遍历Integer值的列表,并对它们求和以设置count变量。