首页 > 解决方案 > 无法读取 StateBackend Flink 的 _metadata

问题描述

我刚刚创建了简单的 flink 应用程序并启用了检查点。我看到检查点文件已创建,但我无法读取它们。文件包含无效字符。如何将这些文件转换为可读格式?(任何语言或在线方式的任何解决方案对我来说都可以)

这是检查点文件夹结构

checkpoint_folder -> chk-23 -> _metadata
// _metadata file content:
L�$4c464d1a-1e37-47aa-957e-02f587343bbd��
V��������C�Corg.apache.flink.api.java.typeutils.runtime.TupleSerializerSnapshot���
������������������������������������������������������������������������������������������� ������� 

当我用崇高的文字打开时:

4960 672d 0000 0002 0000 0000 0000 0122
0000 0000 0000 0004 20ba 6b65 f974 81d5
5700 70de 90e4 e791 0000 000c 0000 0080
0000 0001 0000 000c 0000 0000 ffff ffff
ffff ffff 0000 0000 0000 0001 0400 0000
0100 0673 706c 6974 7300 0000 0000 0100
2465 3165 3133 6662 342d 3838 3061 2d34
3063 392d 3965 6539 2d39 3465 3262 6465
public static void main(String[] args) throws Exception {
        final String checkpointPath="file:///to/path/checkpoint_folder";
        // set up the streaming execution environment
        final StreamExecutionEnvironment env = StreamExecutionEnvironment.createLocalEnvironment();

        env.setStateBackend(new MemoryStateBackend(checkpointPath, null));
        env.enableCheckpointing(1000);
}

标签: javaapache-flinkflink-streaming

解决方案


如果您想检查或修改检查点文件,推荐使用状态处理器 API来执行此操作。

ReadRidesAndFaresSnapshot是一个简单的示例,可以读取RidesAndFaresSolution编写的检查点。


推荐阅读