版本要求
Flink Standalone HA模式,需要确保基于Flink-1.6.1+。
Standalone集群的高可用
Standalone模式(独立模式)下JobManager的高可用性的基本思想是,任何时候都有一个一个 Master JobManager ,并且多个Standby JobManagers 。 Standby JobManagers可以在Master JobManager 挂掉的情况下接管集群成为Master JobManager。 这样保证了没有单点故障,一旦某一个Standby JobManager接管集群,程序就可以继续运行。 Standby JobManager和Master JobManager实例之间没有明确区别。 每个JobManager可以成为Master或Standby节点。
配置flink-conf.yaml:
# In HA mode the rpc.address is chosen automatically by default.
# 不需要配置jobmanager.rpc.address,默认情况下,jobmanager将选择一个随机端口进行进程间通信。
# 可以通过high-availability.jobmanager.port键更改此设置。
# jobmanager.rpc.address: bigdata-node1
high-availability: zookeeper
high-availability.storageDir: hdfs://bigdata-node1:9000/flink/ha/
high-availability.zookeeper.quorum: bigdata-node1:2181,bigdata-node2:2181,bigdata-node3:2181
high-availability.zookeeper.path.root: /flink
配置masters(Leader/Standby候选列表):
bigdata-node1
bigdata-node2
配置slaves:
bigdata-node2
bigdata-node3
启动:
# master
bin/start-cluster.sh start
验证:
bin/jobmanager.sh ((start|start-foreground) cluster)|stop|stop-all
Yarn 集群高可用
当运行高可用性的YARN集群时,我们不运行多个JobManager(ApplicationMaster)节点,而是只有一个,当YARN挂了会导致这个JobManager重新启动。 具体的行为取决于不同的YARN版本。
参考
官方:Flink HA配置指南
https://ci.apache.org/projects/flink/flink-docs-release-1.2/setup/jobmanager_high_availability.html#masters-file-masters