Flink HA 搭建坑
目前网上能找到的做HA的教程基本都无法真正做到多机高可用,包括官方文档,经过很久的折腾,终于做到了多机高可用,希望其它人不再被坑。
集群模式安装
前提条件:
机器已经安装好Java环境
jobManager到taskManager的机器做ssh免密登录(非必须)
以下操作都是直接使用的机器名,并保证可访问(/etc/hosts里配置)
standalone模式
该格式下一个master, 多个worker。
如下使用了三台机器,其中一台名为flink-master,另两台分别为:flink-slave1,flink-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-master1,flink-master2,flinkslave1.
在三台机器上都安装好flink
环境说明:
1. flink-master1:只运行JobManager
2. flink-master2:只运行JobManager
3. flink-slave1:只运行TaskManager
配置步骤:
1.修改conf/flink-yaml.conf,内容如下:
(master1上的配置文件)jobmanager.rpc.address: flink-master1
(master2上的配置文件)jobmanager.rpc.address: flink-master22,其他taskmanager 节点上关闭1 中的配置 (加 # 号即可)
#jobmanager.rpc.address: 。。。。。。。。
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-master1机器的flink/bin目录下执行:jobmanager.sh start 。然后在 master2 再同样启动 jobmanager ,, 最后再启动 所有的taskmanager 。
7.输入相应地址后(http://flink-master1:8081)后,界面如下:

这时如果停掉一个JobManager,另一个会生效(需要等一会,待其检测到并初始化JobManager的元数据后才能看到),输入另一机器的web地址,也会自动跳转到为leader的机器。
经过测试,在 1.7.2 版本,在无任务运行的情况下HA 切换无问题。在有任务运行的情况下 jobmanager 切换有问题,问题还比较严重。后续。继续研究。
Flink HA 搭建坑的更多相关文章
- Flink HA
standalone 模式的高可用 部署 flink 使用zookeeper协调多个运行的jobmanager,所以要启用flink HA 你需要把高可用模式设置成zookeeper,配置zookee ...
- Spark集群基于Zookeeper的HA搭建部署笔记(转)
原文链接:Spark集群基于Zookeeper的HA搭建部署笔记 1.环境介绍 (1)操作系统RHEL6.2-64 (2)两个节点:spark1(192.168.232.147),spark2(192 ...
- HBase HA + Hadoop HA 搭建
HBase 使用的是 1.2.9 的版本. Hadoop HA 的搭建见我的另外一篇:Hadoop 2.7.3 HA 搭建及遇到的一些问题 以下目录均为 HBase 解压后的目录. 1. 修改 co ...
- hadoop HA + HBase HA搭建:
hadoop HA搭建参考:https://www.cnblogs.com/NGames/p/11083640.html (本节:用不到YARN 所以可以不用考虑部署YARN部分) Hadoop 使用 ...
- Spark HA搭建
正文 下载Spark版本,这版本又要求必须和jdk与hadoop版本对应. http://spark.apache.org/downloads.html tar -zxvf 解压到指定目录,进入con ...
- Flink源码学习笔记(3)了解Flink HA功能的实现
使用Flink HA功能维护JobManager中组件的生命周期,可以有效的避免因为JobManager 进程失败导致任务无法恢复的情况. 接下来分享下 Flink HA功能的实现 大纲 基于Zook ...
- yarn上运行flink环境搭建
主要完成hadoop集群搭建和yarn上运行flink 1.搭建hadoop伪集群 主要是搭建hadoop MapReduce(yarn)和HDFS 1.1 下载&配置环境变量 这里下载的ha ...
- flink ha zk集群迁移实践
flink为了保证线上作业的可用性,提供了ha机制,如果发现线上作业失败,则通过ha中存储的信息来实现作业的重新拉起. 我们在flink的线上环境使用了zk为flink的ha提供服务,但在初期,由于资 ...
- Docker安装flink及避坑指南
Docker安装flink 导航 无处不在的大数据 安装flink 拉取flink镜像 编写docker-compose.yml 生成启动 查看安装效果 常见坑及解决方案 问题1 问题2 参考 本 ...
随机推荐
- 怎么用Verilog描述双向IO口
在很多情况下,需要使用双向IO.不过最好谨慎使用,在top层使用.网上很多描述的代码甚至是不可以综合并且有语法错误的,还是老实自己写个模块吧. 如果你需要一个口既做输入端口也做输出端口,那么你就需要去 ...
- MT【276】正切的半角公式
若$\Delta ABC$满足:$\tan\dfrac{A}{2}\cdot\tan\dfrac{C}{2}=\dfrac{1}{3},b=\dfrac{4}{3}a$,则$\sin B=$_____ ...
- 【正睿oi省选十连测】第一场
四小时写了两个暴力??自闭 [原来这就是神仙们的分量Orz rank 56/75 可以说是无比垃圾了 下周目标:进步十名?[大雾 T1 题意:有n个点的图 点有点权Ai 也有点权Bi = A_1 + ...
- Centos 7.3 安装Grafana 6.0
grafana简介 Grafana是一个完全开源的度量分析与可视化平台,可对来自各种各种数据源的数据进行查询.分析.可视化处理以及配置告警. Grafana支持的数据源: 官方:Graphite,In ...
- Hdoj 2190.悼念512汶川大地震遇难同胞——重建希望小学 题解
Problem Description 下面是512汶川大地震部分受灾学校伤亡情况(惨痛!!) 1. 四川省都江堰市 聚源中学 伤亡情况:遇难学生人数(含失踪)320 详细说明: 一栋教学楼被震垮,该 ...
- LOJ#6278. 数列分块入门 2
在一个区间上进行操作,一种操作是某个小区间都加上c,另一个查找这个区间内大于c*c的数 我们可以另外开一个数组在保存a中的每个分块内的相对值,然后每次对a加值,并把a的值赋给b,不同的是b内的各个分块 ...
- NOIP引水入城(dfs)
为了使居民们都尽可能饮用到清澈的湖水,现在要在某些城市建造水利设施.水利设施有两种,分别为蓄水厂和输水站.蓄水厂的功能是利用水泵将湖泊中的水抽取到所在城市的蓄水池中. 因此,只有与湖泊毗邻的第1 行的 ...
- 【165223&165218】结对感想——论如何与队友完美配合
★ 为什么要结对编程? 一.结对编程的优势 搭档的形式 平等.互补 高效率.共分享 相互影响.督促学习 方便复审与反馈 二.结对编程的方式 互换的角色 相同的目的 结对编程中有两个角色: (a)驾驶员 ...
- Loj 103、10043 (KMP统计子串个数)
KMP算法学习链接:https://blog.csdn.net/starstar1992/article/details/54913261/ KMP算法:可以实现复杂度为O(m+n) 为何简化了时间复 ...
- CodeForces - 589A(字符串处理)
题目链接:http://codeforces.com/problemset/problem/589/A 题目大意:给定n个邮件地址,任何电子邮件地址都将显示为“login @ domain”,其中: ...