我写了一个带状态的function
采用了如下cp配置:
env.enableCheckpointing(5000L, CheckpointingMode.EXACTLY_ONCE);
env.getCheckpointConfig().setMinPauseBetweenCheckpoints(100L);
env.getCheckpointConfig().setCheckpointTimeout(60000L);
env.getCheckpointConfig().enableExternalizedCheckpoints(CheckpointConfig.ExternalizedCheckpointCleanup.RETAIN_ON_CANCELLATION);
env.setStateBackend(new FsStateBackend("file:///cp/eventCounter"));

请教几个问题:
①按照官网的介绍,目录数据应该是这样的
/user-defined-checkpoint-dir
    /{job-id}
        |
        + --shared/
        + --taskowned/
        + --chk-1/
        + --chk-2/
        + --chk-3/
        ...

但是我的测试是job正常running时,chk-*永远只有一个,每次做chk,递增 +1 一次


②状态数据按照理解是保存在chk-*下面的,但是我的测试下面只有一个_metadata,并没有每次chk的数据,使用的flink1.12
当我改成使用flink1.8时,是可以看到如下chk-*目录下除了_metadata,还有每次的chk数据.
所以flink1.12高版本的情况每次chk的数据在哪里


③按照官网介绍,默认只保留最新的一份chk数据,如果想保留最近的多份,除了全局flink-conf.yaml中配置state.checkpoints.num-retained:
5, 有程序中使用env 针对每job的配置方式吗





--
Sent from: http://apache-flink.147419.n8.nabble.com/

回复