1.集群规划
Flink on yarn 的HA其实是利用yarn自己的恢复机制。
在这里需要用到ZK,主要是因为虽然flink-on-yarn cluster HA 依赖于Yarn自己的集群机制,但是在Flink job在恢复时,需要依赖检查点产生的快照,而这些快照虽然配置在hdfs,但是其元数据信息保存在zookeeper中,所以我们还要配置zookeeper的信息
hadoop集群:master、slave1、slave2
zookeeper服务:master、slave1、slave2
2.配置
主要在master上配置
1.首先需要修改hadoop集群中所有节点中yarn-site.xml中的配置,设置提交应用程序的最大尝试次数
<property>
<name>yarn.resourcemanager.am.max-attempts</name>
<value>4</value>
<description> Themaximumnumberofapplicationmasterexecutionattempts. </description>
</property>
2.解压一份Flink安装包
tar -zxvf flink-1.6.1-bin-hadoop27-scala_2.11.tgz
3.配置flink-conf.yaml
vi conf/flink-conf.yaml
high-availability:zookeeper
high-availability.zookeeper.quorum:master:2181,slave1:2181,slave2:2181
high-availability.storageDir:hdfs://hadoop100:9000/flink/ha-yarn
high-availability.zookeeper.path.root:/flink-yarn
yarn.application-attempts:10
4.启动集群
先启动master、slave1、slave2上的hadoop和zookeeper
bin/zkServer.sh start
sbin/start-all.sh
在master上启动Flink集群
bin/yarn-session.sh-n2
web查看http://slave2:44400
到 resoucemanager 的 web 界面上查看对应的 flink 集群在哪个节点上,web查看http://master:8088
jobmanager 进程就在对应的节点(YarnSessionClusterEntrypoint)进程里
5.测试
所以想要测试 jobmanager 的 HA 情况,只需要拿YarnSessionClusterEntrypoint 这个进程进行 测试即可。
执行下面命令手工模拟 kill 掉jobmanager(YarnSessionClusterEntrypoint
然后去 yarn 的 web 界面进行查看:
再在slave1下查看进程:jps
发现YarnSessionClusterEntrypoint跑在了slave1上。
集群HA完成!