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/masters
和conf/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:8080
和192.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
<property>
<name>yarn.resourcemanager.am.max-attempts</name>
<value>4</value>
<description>
The maximum number of application master execution attempts.
</description>
</property>
建议flink-conf.yaml
配置的AM重启次数不要超过yarn-site.xml
中配置的次数。
网友评论