Skip to main content

高可用

创建hdfs目录

hdfs dfs -mkdir -p /flink/recovery

修改配置文件

vi conf/flink-conf.yaml

未使用集群管理器配置(也就是没有yarn的情况下)

high-availability: zookeeper
high-availability.zookeeper.quorum: localhost:2181
high-availability.zookeeper.path.root: /flink
high-availability.cluster-id: /cluster_one # important: customize per cluster
high-availability.storageDir: hdfs:///flink/recovery

有yarn的情况下

high-availability: zookeeper
high-availability.zookeeper.quorum: master1:2181,master2:2181,node1:2181
high-availability.zookeeper.path.root: /flink
high-availability.storageDir: hdfs:///flink/recovery

重要: high-availability.cluster-id在 YARN、原生 Kubernetes 或其他集群管理器上运行时,不应该手动设置此值。在这些情况下,将自动生成一个集群 ID。如果在未使用集群管理器的机器上运行多个 Flink 高可用集群,则必须为每个集群手动配置单独的集群 ID(cluster-ids)。

测试高可用

提交测试程序

bin/flink run-application -t yarn-application   -Dyarn.provided.lib.dirs="hdfs://bigdatacluster/flink-dist" hdfs://bigdatacluster/flink-jars/TopSpeedWindowing.jar

找到对应启动的jobmaster端口号,执行kill操作

netstat -tulnp | grep 35025

kill -9 32615

如果重新启动了一个master那么说明高可用配置成功了。然后查看是否还存活的。

yarn top 

获取下一个重启jobmanager信息,zookeeper运行。可以看到重新启动以后的jobmanager的端口

get /flink/application_1698659960145_0013/leader/rest_server/connection_info

使用下面的命令就能够完全的kill掉对应的flink高可用任务

yarn application -kill application_1698659960145_0013