Flink HA 部署

Flink 使用介绍相关文档目录

Flink 使用介绍相关文档目录

背景

Flink 集群通常包含一个Job Manager和多个Task Manager。Task Manager如果出现故障挂掉通常不会影响任务的执行,只是会减缓运行速度。然而单个Job Manager会出现严重的单点问题,如果Job Manager出现问题,整个任务会失败。有没有方法配置多个Job Manager呢?

Standalone集群 HA的配置

flink-conf.yaml包含如下HA配置

#==============================================================================
# Standalone High Availability
#==============================================================================

# The high-availability mode. Possible options are 'NONE' or 'zookeeper'.
#
high-availability: zookeeper

# The path where metadata for master recovery is persisted. While ZooKeeper stores
# the small ground truth for checkpoint and leader election, this location stores
# the larger objects, like persisted dataflow graphs.
#
# Must be a durable file system that is accessible from all nodes
# (like HDFS, S3, Ceph, nfs, ...)
#
high-availability.storageDir: hdfs:///flink/ha/

# The list of ZooKeeper quorum peers that coordinate the high-availability
# setup. This must be a list of the form:
# "host1:clientPort,host2:clientPort,..." (default clientPort: 2181)
#
high-availability.zookeeper.quorum: 192.168.100.128:2181,192.168.100.129:2181

# ACL options are based on https://zookeeper.apache.org/doc/r3.1.2/zookeeperProgrammers.html#sc_BuiltinACLSchemes
# It can be either "creator" (ZOO_CREATE_ALL_ACL) or "open" (ZOO_OPEN_ACL_UNSAFE)
# The default value is "open" and it can be changed to "creator" if ZK security is enabled
#
# high-availability.zookeeper.client.acl: open

配置项的功能如下:

  • high-availability: 只有zookeeper一种选项
  • high-availability.storageDir: 指定job manager的元数据存储位置,需要指定在HDFS下的目录,这样多个节点上运行的job manager都可以访问到。
  • high-availability.zookeeper.quorum: zookeeper的地址。
  • high-availability.zookeeper.client.acl: Zookeeper ACL相关配置,如果不启用认证则不用修改此配置。

部署方式

使用一键脚本部署

首先执行部署命令的节点需要和集群其他的节点做免密配置。
编辑conf/mastersconf/slaves文件
masters文件需要配置各个Job Manager的IP地址和端口号信息,如下所示:

192.168.100.128:8080
192.168.100.129:8080

slaves文件需要配置各个Task Manager运行所在的节点,如下所示:

192.168.100.128
192.168.100.129

保存配置之后将Flink软件包,连同配置文件复制到集群中各个节点。同时需要配置各个节点的FLINK_HOME环境变量。

最后,执行bin/start-cluster.sh脚本,浏览器分别打开192.168.100.128:8080192.168.100.129:8080,检查Flink管理页面是否能正常显示,以及Task Manager的数量其否正确。

使用手工启动的方式

和上面所述的方法类似,也需要复制Flink软件包和配置文件到各个节点,但无需再配置免密,也不需要修改masters和slaves文件。
分别在job manager和task manager节点执行如下命令:

# 在192.168.100.128节点
bin/jobmanager.sh start 192.168.100.128 8080

# 在192.168.100.129节点
bin/jobmanager.sh start 192.168.100.129 8080

# 在192.168.100.128和192.168.100.129节点
bin/taskmanager.sh start 

到此Flink HA集群部署完毕。可以采用上述的验证方法进行验证。

Flink on yarn配置高可用

Flink在yarn集群中运行我们不用去启动多个Job Manager。如果Job Manager启动失败,有如下两个参数可以控制application master的重启次数。

flink-conf.yaml

yarn.application-attempts: 4

yarn-site.xml


  yarn.resourcemanager.am.max-attempts
  4
  
    The maximum number of application master execution attempts.
  

建议flink-conf.yaml配置的AM重启次数不要超过yarn-site.xml中配置的次数。

你可能感兴趣的:(Flink HA 部署)