Flink on yarn 高可用环境配置 high-availability

1. 背景

默认情况下一个flink job只启动一个jobManager,因此存在单点故障问题,所以生产环境中需要HA。
因为生产环境中基于yarn集群的flink应用场景更多,本文只介绍基于yarn的flink高可用配置。

2. 配置

配置yarn集群级别AM重启上限

# vim yarn-site.xml


  yarn.resourcemanager.am.max-attempts
  100

配置flink HA相关

# vim /home/admin/flink-1.9.1/conf/flink-conf.yaml

high-availability: zookeeper
high-availability.storageDir: hdfs:///flink/ha/
high-availability.zookeeper.quorum: uhadoop-op3raf-master1,uhadoop-op3raf-master2,uhadoop-op3raf-core1
# 单个flink job的重试次数
yarn.application-attempts: 10

3. 启动

方式一

启动一个基于yarn的flink集群

/home/admin/flink-1.9.1/bin/yarn-session.sh -n 10 -jm 10g -tm 10g -s 10 2>&1 &

提交一个flink job到上面启动的flink集群

/home/admin/flink-1.9.1/bin/flink run -yn 8 -yqu root.flink -ys 4 -yid application_1572318163583_50445 /home/admin/tiangx/applog_etl/jar/applog_etl-1.0-SNAPSHOT-jar-with-dependencies.jar 

方式二

在yarn上提交flink single job,直接启动一个flink集群

/home/admin/flink-1.9.1/bin/flink run -m yarn-cluster -yn 8 -yqu root.flink -ys 4 -ynm etl_test \
/home/admin/tiangx/applog_etl/jar_test/applog_etl-1.0-SNAPSHOT-jar-with-dependencies.jar 

4. 验证

4.1 打开flink控制台,可以看到jobManager在节点uhadoop-op3raf-core6
Flink on yarn 高可用环境配置 high-availability_第1张图片

4.2 ssh到该节点,使用jps查看:

Flink on yarn 高可用环境配置 high-availability_第2张图片

20919 YarnSessionClusterEntrypoint(ApplicationMaster)为FlinkJobManager进程,将其kill掉

ps: flink 1.10版本JobManager进程为:YarnJobClusterEntrypoint
Flink on yarn 高可用环境配置 high-availability_第3张图片

4.3 刷新hadoop控制台(下图)可以看到jobManager在uhadoop-op3raf-core10:23999上重启了
Flink on yarn 高可用环境配置 high-availability_第4张图片

4.4 刷新flink控制台,可以发现jobManager已切换
Flink on yarn 高可用环境配置 high-availability_第5张图片

你可能感兴趣的:(Flink,大数据)