flink ha集群

作者: 三无架构师 | 来源:发表于2018-07-20 11:05 被阅读336次

目前网上能找到的做HA的教程基本都无法真正做到多机高可用,包括官方文档,经过很久的折腾,终于做到了多机高可用,希望其它人不再被坑。

集群模式安装

前提条件:

  • 机器已经安装好Java环境

  • jobManager到taskManager的机器做ssh免密登录

以下操作都是直接使用的机器名,并保证可访问(/etc/hosts里配置)

standalone模式

该格式下一个master, 多个worker。

如下使用了三台机器,其中一台名为flink-master,另两台分别为:flink-slave1flink-slave2

修改flink配置flink-conf.yaml,更改其jobmanager.rpc.address地址如下:


jobmanager.rpc.address: flink-master

然后修改其conf/slaves文件内容如下:


flink-slave1

flink-slave2

把该文件打包并上传至这三台机器,在master机器上启动:bin/start-cluster.sh start

在另外两台slave机器上分别执行: bin/taskmanager.sh start

ha模式

官方文档中的高可用只是针对localhost做的,是伪高可用,并且说明不细,真正在使用多机做高可用时无效,按官方说明无法搭建成功

前置条件:

  • java

  • 高可用数据的存储:在此使用的hadoop,其支持多种,如HDFS, S3, Ceph, nfs等

  • 机器准备:在此准备了三台机器,分别为flink-master,flink-slave1,flinkslave2,并且做好高向master到slave的免密ssh登录

  • 在三台机器上都安装好flink

环境说明:

1. flink-master:只运行JobManager

2. flink-slave1:运行JobManager和TaskManager

3. flink-slave2:只运行TaskManager

配置步骤:

1.修改conf/masters,内容如下:


flink-master:8081

flink-slave1:8081

2.修改conf/slaves,其内容如下:


flink-slave1

flink-slave2

3.修改conf/flink-conf.yaml,其内容如下:

以下为必须要配置的内容:


high-availability: zookeeper

high-availability.storageDir: hdfs://192.168.0.15:9000/flink/ha/

high-availability.zookeeper.quorum: 192.168.0.15:2181

  • high-availability: 高可用模式,必须为zookeeper

  • high-availability.storageDir: JobManager的元数据持久化保存的位置

  • high-availability.zookeeper.quorum: zk集群地址,在此我使用已有的zk,没有使用自带的

以下两项为建议配置项,根据需要配置:

  • high-availability.zookeeper.path.root: /flink

  • high-availability.cluster-id: /default_ns,该选项只有在有多个flink集群并共用同一个zk集群时才需要,否则其默认为default

4.把以上配置同步到三台机器的flink的conf目录下。

5.重要,官网坑就在此:修改flink-master机器的flink-conf.yaml中的jobmanager.rpc.address地址为flink-master, 修改flink-slave1机器的flink-conf.yaml的jobmanager.rpc.address地址为flink-slave1如果不修改,会导致JobManager启动成功,但TaskManager无法连接到JobManager,其官方文档里面并没有修改,目前查看网上所有资料也没有人建议更改此配置,经查看其zookeeper中/flink/default/leader/resource_manager_lock节点值,发现配置不对,确定到JobManager注册的地址不对,其配置文档中说明也有问题,经尝试,发现需要修改该地址为每台JobManager自己机器地址即可

6.在flink-master机器的flink/bin目录下执行:./start-cluster.sh即可。

7.输入相应地址后(http://flink-master:8081)后,界面如下:

image.png

这时如果停掉一个JobManager,另一个会生效(需要等一会,待其检测到并初始化JobManager的元数据后才能看到),输入另一机器的web地址,也会自动跳转到为leader的机器。


相关文章

  • flink ha集群

    目前网上能找到的做HA的教程基本都无法真正做到多机高可用,包括官方文档,经过很久的折腾,终于做到了多机高可用,希望...

  • 2019-04-07-Flink(7)——flink stand

    本文基于 Flink 1.7。 本文介绍搭建standalone HA 集群的过程,并且简单介绍核心配置。 Req...

  • flink1.8 基于Zookeeper的HA源码分析

    Zookeeper HA相关配置 flink使用Zookeeper做HA flink的ResourceManage...

  • Flink 生产实践

    Flink HA Flink HA 的HighAvailabilityMode类中定义了是那种高可用性模式枚举: ...

  • flink大纲知识

    flink集群部署flink反压flink拓扑架构flink的内存管理

  • Flink 集群构建 & 逻辑计划生成

    Flink 集群构建 & 逻辑计划生成 转载:Flink 集群构建 & 逻辑计划生成 概要和背景 flink是一个...

  • 大数据||HDFS HA配置详解

    根据HA架构图,规划HA的分布式集群服务器 HA集群规划 根据官方文档配置HA 部分说明 Architecture...

  • Flink集群架构

    Flink集群架构 Flink采用Master-Slave架构,其中JobManager作为集群Master节点,...

  • Hadoop HA

    Hadoop HA 什么是 HA HA是High Available缩写,是双机集群系统简称,指高可用性集群,是保...

  • Hadoop HA

    Hadoop HA 什么是 HA HA是High Available缩写,是双机集群系统简称,指高可用性集群,是保...

网友评论

    本文标题:flink ha集群

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