Checkpoint 失败之Checkpoint Decline应如何解决?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
我们能从 jobmanager.log 中看到类似下面的日志 Decline checkpoint 10423 by task 0b60f08bf8984085b59f8d9bc74ce2e1 of job 85d268e6fbc19411185f7e4868a44178. 其中 10423 是 checkpointID, 0b60f08bf8984085b59f8d9bc74ce2e1 是 execution id,85d268e6fbc19411185f7e4868a44178 是 job id,我们可以在 jobmanager.log 中查找 execution id,找到被调度到哪个 taskmanager 上,类似如下所示:
2019-09-02 16:26:20,972 INFO [jobmanager-future-thread-61] org.apache.flink.
runtime.
executiongraph.ExecutionGraph - XXXXXXXXXXX (100/289)
(87b751b1fd90e32af55f02bb2f9a9892)
switched from SCHEDULED to DEPLOYING.
2019-09-02 16:26:20,972 INFO [jobmanager-future-thread-61] org.apache.flink.
runtime.
executiongraph.ExecutionGraph - Deploying XXXXXXXXXXX (100/289)
(attempt #0) to slot
container_e24_1566836790522_8088_04_013155_1 on hostnameABCDE
从上面的日志我们知道该 execution 被调度到 hostnameABCDE 的 container_e24_1566836790522_8088_04_013155_1 slot 上,接下来我们就可以到 container container_e24_1566836790522_8088_04_013155 的 taskmanager.log 中查找 Checkpoint 失败的具体原因了。 另外对于 Checkpoint Decline 的情况,有一种情况我们在这里单独抽取出来进 行介绍:Checkpoint Cancel。 当前 Flink 中如果较小的 Checkpoint 还没有对齐的情况下,收到了更大的Checkpoint,则会把较小的 Checkpoint 给取消掉。我们可以看到类似下面的日志:
$taskNameWithSubTaskAndID: Received checkpoint barrier for checkpoint 20
before completing
current checkpoint 19. Skipping current checkpoint.
这个日志表示,当前 Checkpoint 19 还在对齐阶段,我们收到了 Checkpoint 20 的 barrier。然后会逐级通知到下游的 task checkpoint 19 被取消了,同时也会 通知 JM 当前 Checkpoint 被 decline 掉了。 在下游 task 收到被 cancelBarrier 的时候,会打印类似如下的日志:
DEBUG
$taskNameWithSubTaskAndID: Checkpoint 19 canceled, aborting alignment.
或者
DEBUG
$taskNameWithSubTaskAndID: Checkpoint 19 canceled, skipping alignment.
或者
WARN
$taskNameWithSubTaskAndID: Received cancellation barrier for checkpoint 20
before completing
current checkpoint 19. Skipping current checkpoint.
上面三种日志都表示当前 task 接收到上游发送过来的 barrierCancel 消息,从 而取消了对应的 Checkpoint。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。
你好,我是AI助理
可以解答问题、推荐解决方案等
评论
全部评论 (0)