You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by "casel.chen" <ca...@126.com> on 2022/08/28 03:49:53 UTC
k8s环境下application模式flink作业HA的原理是什么?
k8s环境下开启作业HA后,如果JM挂了会重新拉起一个新的JM,想知道这个原理是什么?重启的作业会从上一个checkpoint位置重新消费吗?
回复:k8s环境下application模式flink作业HA的原理是什么?
Posted by hjw <10...@qq.com.INVALID>.
1.基于K8s的HA开启后,会对每个作业生成一个configMap. configMap名称为: cluster-id-00000000000000000000000000000000-config-map.里面会记录指向作业的jobgraph和checkpoint等元数据的指针,具体元数据存会由high-availability.storageDir参数指定。
2.在Application模式下,作业的Id会全部变为00000000000000000000000000000000,这样做的目的是让作业在高可用恢复时能关联对应作业失败前的最新checkpoint,从而从最新状态恢复。所以作业会在作业重启时候由HA自动关联重启前的状态进行启动。
3.另外,需要注意的是如果不通过flink cancel.stop命令对作业进行停止,直接删除deployment,负责高可用的configMap并不会进行清理,重新进行部署作业时会直接从上一次的checkpoint进行恢复,代码也不会进行更新,这是预期行为。
更多的细节可以参考:
[1].https://flink.apache.org/2021/02/10/native-k8s-with-ha.html
[2].https://cwiki.apache.org/confluence/display/FLINK/FLIP-144%3A+Native+Kubernetes+HA+for+Flink
[3].https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/deployment/ha/kubernetes_ha/#high-availability-data-clean-up
Best,
Hjw
------------------ 原始邮件 ------------------
发件人: "user-zh" <casel_chan@126.com>;
发送时间: 2022年8月28日(星期天) 中午11:49
收件人: "user-zh@flink.apache.org"<user-zh@flink.apache.org>;
主题: k8s环境下application模式flink作业HA的原理是什么?
k8s环境下开启作业HA后,如果JM挂了会重新拉起一个新的JM,想知道这个原理是什么?重启的作业会从上一个checkpoint位置重新消费吗?