根据部署方式不同,Flink Jobmanager HA配置分为2种:
1、standalone cluster HA
2、Yarn cluster HA
其中,standalone cluster HA可参考我之前的一篇文章。
简单回顾下,standalone模式的HA需要多个“活着的”Jobmanager,其中1个作为leader,其他作为standby,leader选举依赖于Zookeeper。可以用下面的一张图来形象的表述standalone HA:
本文专门讨论Yarn下Flink HA的搭建与配置。
一、Flink On Yarn 简介
Flink部署在Yarn上,仅作为yarn上“多租户”的一个service而存在。Flink在yarn中容器的概念分为2种:
用于启动JobManager(AM)的容器
用于启动TaskManager的容器
我们可以通过yarn-session.sh –help来看下启动Flink On Yarn的参数信息:
其中-n代表taskmanager的容器数量,而不是taskmanager+jobmanager的容器数量。
在配置HA前,先通过-q看一下我的yarn集群的资源情况:
从图中可以看出,我配置的每个NodeManager的内存是8192MB(yarn-site.xml),每个NodeManager的vcores数量是8。所以,当前yarn集群中可用内存总量为32768,总cores是32.
二、Flink on Yarn HA 配置
1、配置准备
在配置Flink On Yarn之前,必须保证hdfs和yarn都已经开启,可以通过$HADOOP_HOME/sbin/start-all.sh启动hdfs和yarn。
2、配置AM在尝试重启的最大次数(yarn-site.xml)
此配置需要在$HADOOP_CONF_DIR
的yarn-site.xml添加。
添加如下配置:
此配置代表application master在重启时,尝试的最大次数。
3、配置Application Attempts(flink-conf.yaml)
此参数需要在$FLINK_HOME/conf
的flink-conf.yaml中配置。
添加如下配置:
此参数代表Flink Job(y