开发者社区> 问答> 正文

关于flink CheckPoint 状态数据保存的问题

我写了一个带状态的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的配置方式吗*来自志愿者整理的flink

展开
收起
雪哥哥 2021-12-05 12:27:51 852 0
1 条回答
写回答
取消 提交回答
  • 这个配置本身我看了一下只能走 flink-conf.yaml,而且似乎是 per cluster 配置的,虽然 perjob / application 部署的时候没啥问题,但是 session 可能就不行了。配置这块 Flink 是有点全走 flink-conf.yaml + 默认你是用 perjob / application 的意思。*来自志愿者整理的flink

    2021-12-05 17:55:59
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Flink CDC Meetup PPT - 龚中强 立即下载
Flink CDC Meetup PPT - 王赫 立即下载
Flink CDC Meetup PPT - 覃立辉 立即下载