版本要求

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节点。
image.png
配置flink-conf.yaml:

  1. # In HA mode the rpc.address is chosen automatically by default.
  2. # 不需要配置jobmanager.rpc.address,默认情况下,jobmanager将选择一个随机端口进行进程间通信。
  3. # 可以通过high-availability.jobmanager.port键更改此设置。
  4. # jobmanager.rpc.address: bigdata-node1
  5. high-availability: zookeeper
  6. high-availability.storageDir: hdfs://bigdata-node1:9000/flink/ha/
  7. high-availability.zookeeper.quorum: bigdata-node1:2181,bigdata-node2:2181,bigdata-node3:2181
  8. high-availability.zookeeper.path.root: /flink

配置masters(Leader/Standby候选列表):

  1. bigdata-node1
  2. bigdata-node2

配置slaves:

  1. bigdata-node2
  2. bigdata-node3

启动:

  1. # master
  2. bin/start-cluster.sh start

验证:

  1. 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