一、前提条件:
-
已安装了hadoop,yarn,hdfs
-
使用的flink版本是1.15版本
二、配置步骤
1、设置yarn-site.yaml中的yarn.resourcemanager.am.max-attempts参数值为4,默认值为2
2、 设置flink中的flink-conf.yaml中参数
high-availability: zookeeper high-availability.storageDir: hdfs:///flink/ha/ high-availability.zookeeper.quorum: dsjyzj-test05:2181 high-availability.zookeeper.path.root: /flink yarn.application-attempts: 10 rest.port: 8081 # 配置固定端口号
3、 启动命令
./bin/yarn-session.sh -nm abc
假如,启动后的yarn的applicationId是application_1698205292238_0008
三、验证HA是否成功
在启动的服务器上通过jps找到YarnSessionClusterEntrypoint进程,再kill掉该进程,监督yarn的application_1698205292238_0008任务切换acceped->running,一直运行中,即flink的jobmanager实现了高可用。
四、出现的问题
Q1: 在重启yarn-session的过程中flink日志出现报错: Deployment took more than 60 seconds. Please check if the requested resources are。。。
A1: 查看yarn的application_1698205292238_0008日志,可以看到具体的错误详情,Q2即为我的报错情况。
Q2: 解决org.apache.zookeeper.KeeperException$UnimplementedException: KeeperErrorCode = Unimplemented for /flink
A2: Flink1.15跟zookeeper3.4版本不兼容问题,将zookeeper版本升级或者重新安装zookeeper版本为3.5以上即可。