Flink1.10从0到1:(五)Flink的HA

一、简介

        默认情况下,每个 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。

 

       Flink1.10从0到1:(五)Flink的HA

 

二、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 中的提交应用程序最大尝试次数调大

Flink1.10从0到1:(五)Flink的HA

 

(2)重启 Yarn 集群

        重启集群

(3)修改 Flink 对应 flink-conf.yaml 配置

        配置对应的 conf 下的 flink-conf.yaml,配置内容如下:(主要配置以下5项)

Flink1.10从0到1:(五)Flink的HA

三、测试

1、启动 yarn-session.sh 测试 HA: yarn-session.sh -n 2 ,也可以直接提交。Job启动之后,可以登录 yarn 中对应的 flink webui,如下图示:
 
Flink1.10从0到1:(五)Flink的HA

      

 2、从Yarn的管理界面进如Flink任务的ApplicationMaster查看JobManager在那台机子上运行。

      Flink1.10从0到1:(五)Flink的HA

3、进入到yarn管理直接停止hadoop07 DataNode节点

Flink1.10从0到1:(五)Flink的HA

4、查看JobManager

Flink1.10从0到1:(五)Flink的HA

当看到jobmanager.rpc.address 换节点后表示HA配置成功。

感悟

        永远要记得,成功的决心远胜于任何东西。