在flink执行中,jobManager是一个负责执行流式应用执行和检查点生成的组件,一旦发生故障,那么其负责的所有应用都会被取消,所以我们需要对JobManager配置高可用的模式
配置JobManager的高可用需要使用到zookeeper,一方面zookeeper可以进行领导的选举工作,这样备用jobmanager就可以在主jobmanager故障时进行接管,另一方面,zookeeper可以用于持久存储少量的元数据,以下就是jobmanager的高可用配置图
当备用的JobManager接手主Jobmanager的工作时,他会执行以下步骤:
1.从zookeeper中获取jar包,jobgraph图,检查点所在的Hdfs远程存储的路径句柄
2.使用最近检查点重新启动应用,在这个过程中,flink会保证状态的一致性,从这里也可以看出,如果应用没有开启检查点时,flink此时只是重启应用,不保证状态的