Hi Flink的容错机制是可以保证TM lost时候会尝试重启作业,“为何任务不能恢复”是需要看完整异常栈的,简单描述是无法帮助排查问题的。
祝好 唐云 ________________________________ From: Carmen Free <[email protected]> Sent: Tuesday, January 12, 2021 15:52 To: [email protected] <[email protected]> Subject: 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没有挂掉,应该就可以将任务进行恢复啊,是我的理解有偏差吗?
