Flink HA 部署

作者: AlienPaul | 来源:发表于2019-11-27 11:33 被阅读0次

    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

    <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中配置的次数。

    相关文章

      网友评论

        本文标题:Flink HA 部署

        本文链接:https://www.haomeiwen.com/subject/hqouwctx.html