开发者社区> 问答> 正文

rocksdb作为statebackend时,TM节点挂掉了,为何任务不能恢复呢?

hi,

rocksdb作为statebackend时,TM节点挂掉了,为何任务不能恢复呢?

1、环境说明

flink版本:1.10.2 操作系统:centos 7

2、集群说明(当前模拟了2节点)

节点A | 节点B 角色 | JM、TM | TM taskslot | 4 | 4

3、statebackend配置

rocksdb作为状态后备

state.backend: rocksdb

存储快照的目录(暂时使用的本地目录)

state.checkpoints.dir: file:///data/flink/checkpoints

4、启动任务后,任务自动分配在A节点的TM上,运行一段时间后,检查点快照正常。接着,仅停掉A节点TM(JM仍正常运行),任务被自动调度至B节点的TM上,但是此时任务一直重启,无法恢复,这是为什么呢?

5、如果我启动A节点,任务依旧无法恢复(此时任务仍在B节点运行),直到我停掉B节点TM,此时任务调度至A节点,任务可以正常恢复。所以有点疑问,4中的场景为何不能恢复任务呢?为什么只有在A节点上才可以进行任务恢复呢?最初以为是访问路径的问题,但是仔细想了想,检查点相关的操作一直都是JM进行的,我觉得只要JM没有挂掉,应该就可以将任务进行恢复啊,是我的理解有偏差吗?*来自志愿者整理的flink邮件归档

展开
收起
毛毛虫雨 2021-12-08 11:40:34 543 0
1 条回答
写回答
取消 提交回答
  • hi,

    rocksdb作为statebackend时,TM节点挂掉了,为何任务不能恢复呢?

    1、环境说明

    flink版本:1.10.2 操作系统:centos 7

    2、集群说明(当前模拟了2节点)

    节点A | 节点B 角色 | JM、TM | TM taskslot | 4 | 4

    3、statebackend配置

    rocksdb作为状态后备

    state.backend: rocksdb

    存储快照的目录(暂时使用的本地目录)

    state.checkpoints.dir: file:///data/flink/checkpoints

    4、启动任务后,任务自动分配在A节点的TM上,运行一段时间后,检查点快照正常。接着,仅停掉A节点TM(JM仍正常运行),任务被自动调度至B节点的TM上,但是此时任务一直重启,无法恢复,这是为什么呢?

    5、如果我启动A节点,任务依旧无法恢复(此时任务仍在B节点运行),直到我停掉B节点TM,此时任务调度至A节点,任务可以正常恢复。所以有点疑问,4中的场景为何不能恢复任务呢?为什么只有在A节点上才可以进行任务恢复呢?最初以为是访问路径的问题,但是仔细想了想,检查点相关的操作一直都是JM进行的,我觉得只要JM没有挂掉,应该就可以将任务进行恢复啊,是我的理解有偏差吗?*来自志愿者整理的flink邮件归档

    2021-12-08 16:07:23
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
HBase 数据备份与恢复 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载