一、简介
默认情况下,每个 Flink 集群只有一个 JobManager,这将导致单点故障(SPOF),如果这个 JobManager 挂了,则不能提交新的任务,并且运行中的程序也会失败。使用JobManager HA,集群可以从 JobManager 故障中恢复,从而避免单点故障。用户可以在Standalone 或 Flink on Yarn 集群模式下配置 Flink 集群 HA(高可用性)。
Standalone 模式下,JobManager 的高可用性的基本思想是,任何时候都有一个 Alive JobManager 和多个 Standby JobManager。Standby JobManager 可以在 Alive JobManager挂掉的情况下接管集群成为 Alive JobManager,这样避免了单点故障,一旦某一个 Standby JobManager 接管集群,程序就可以继续运行。Standby JobManagers 和 Alive JobManager实例之间没有明确区别,每个 JobManager 都可以成为 Alive 或 Standby。
二、Flink On Yarn HA (基于CDH版)安装和配置
正常基于 Yarn 提交 Flink 程序,无论是使用 yarn-session 模式还是 yarn-cluster 模式 , 基 于 yarn 运 行 后 的 application 只 要 kill 掉 对 应 的 Flink 集 群 进 程“YarnSessionClusterEntrypoint”后,基于 Yarn 的 Flink 任务就失败了,不会自动进行重试,所以基于 Yarn 运行 Flink 任务,也有必要搭建 HA,这里同样还是需要借助 zookeeper来完成,步骤如下:
(1)修改所有节点的 yarn-site.xml
将所有 Hadoop 节点的 yarn-site.xml 中的提交应用程序最大尝试次数调大
(2)重启 Yarn 集群
重启集群
(3)修改 Flink 对应 flink-conf.yaml 配置
配置对应的 conf 下的 flink-conf.yaml,配置内容如下:(主要配置以下5项)
三、测试
2、从Yarn的管理界面进如Flink任务的ApplicationMaster查看JobManager在那台机子上运行。
3、进入到yarn管理直接停止hadoop07 DataNode节点
4、查看JobManager
当看到jobmanager.rpc.address 换节点后表示HA配置成功。
感悟
永远要记得,成功的决心远胜于任何东西。