【Flink on k8s】高可用的关键机制及configmap数据详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【Flink on k8s】高可用的关键机制及configmap数据详解相关的知识,希望对你有一定的参考价值。

参考技术A

源码详解:DefaultCompletedCheckpointStore.addCheckpoint/tryRemoveCompletedCheckpoint
步骤 1 :根据checkpointID获取checkpoint path
步骤 2 :在s3 path写state数据,接着修改configmap的中checkpoint信息即flink-161511ce1fe78368bc659597e472fb7d-jobmanager-leader的checkpointID-0000000000000102688
步骤 3 :把checkpoint信息放到队列里面,然后根据需要保留的completecheckpoint数量(集群配置state.checkpoints.num-retained),删除多余的completecheckpoint

设置 s3 协议的文件路径作为状态后端即 s3://bucket01/flink/savepoints 、 s3://bucket01/flink/checkpoints ,设置支持 s3 协议的集群即 s3.endpoint 、 s3.access-key 和 s3.secret-key 。

high-availability 设置为 org.apache.flink.kubernetes.highavailability.KubernetesHaServicesFactory
kubernetes.namespace 是指 kubernetes 的 namespace,kubernetes.service-account 是指 kubernetes 的serviceaccount, high-availability.storageDir 采用 s3 地址,最后 kubernetes.cluster-id 是设置了高可用 configmap 的前缀,例如 flink-dispatcher-leader、flink-161511ce1fe78368bc659597e472fb7d-jobmanager-leader 等

dispatcher 是管理作业的主节点,高可用数据主要有 dispatcher 主节点的地址 非完成状态的作业状态和流图保存地址 ,其中流图保存地址是 Base64 编码的。如下所示,dispatcher 主节点是 akka.tcp://flink@10.244.0.246:8123/user/rpc/dispatcher_1 ,作业 161511ce1fe78368bc659597e472fb7d 的状态是 Running ,其流图 jobGraph-161511ce1fe78368bc659597e472fb7d 保存在 s3://bucket01/flink/ha/default/submittedJobGraph307e2d6a5be8

作业的高可用数据主要有 作业管理节点的地址 当前作业的checkpoint 最新数据的保存地址 ,其中checkpoint 保存地址是 Base64 编码的。如下所示,作业管理节点是 akka.tcp://flink@10.244.0.246:8123/user/rpc/jobmanager_2 ,该作业最新的 checkpoint 是 checkpointID-0000000000000102688 ,其保存地址是 s3://bucket01/flink/ha/default/completedCheckpointf07724c0946a

HA高可用Stonith介绍及Stonith事件触发流程机制

aa
技术分享图片

技术分享图片
test

以上是关于【Flink on k8s】高可用的关键机制及configmap数据详解的主要内容,如果未能解决你的问题,请参考以下文章

在k8s手工搭建flink+zookeeper standalone高可用集群笔记

【Flink on k8s】Flink on Kubernetes 部署模式

Flink on yarn初步讲解

Flink JobManager高可用性(HA)

面试题

flink-1.11.0+hadoop3.2.2 部署flink on yarn