Flink JobManager HA模式部署(基于Standalone)
参考文章:https://ci.apache.org/projects/flink/flink-docs-release-1.3/setup/jobmanager_high_availability.html#bootstrap-zookeeper
Flink典型的任务处理过程如下所示:

很容易发现,JobManager存在单点故障(SPOF:Single Point Of Failure),因此对Flink做HA,主要是对JobManager做HA,根据Flink集群的部署模式不同,分为Standalone、OnYarn,本文主要涉及Standalone模式。
JobManager的HA,是通过Zookeeper实现的,因此需要先搭建好Zookeeper集群,同时HA的信息,还要存储在HDFS中,因此也需要Hadoop集群,最后修改Flink中的配置文件。
一、部署Zookeeper集群
参考博文:http://www.cnblogs.com/liugh/p/6671460.html
二、部署Hadoop集群
参考博文:http://www.cnblogs.com/liugh/p/6624872.html
三、部署Flink集群
参考博文:http://www.cnblogs.com/liugh/p/7446295.html
四、conf/flink-conf.yaml修改
4.1 必选项
high-availability: zookeeper
high-availability.zookeeper.quorum: DEV-SH-MAP-:,DEV-SH-MAP-:,DEV-SH-MAP-:
high-availability.zookeeper.storageDir: hdfs:///flink/ha
4.2 可选项
high-availability.zookeeper.path.root: /flink
high-availability.zookeeper.path.cluster-id: /map_flink
修改完后,使用scp命令将flink-conf.yaml文件同步到其他节点
五、conf/masters修改
设置要启用JobManager的节点及端口:
dev-sh-map-:
dev-sh-map-:
修改完后,使用scp命令将masters文件同步到其他节点
六、conf/zoo.cfg修改
# ZooKeeper quorum peers
server.=DEV-SH-MAP-::
server.=DEV-SH-MAP-::
server.=DEV-SH-MAP-::
修改完后,使用scp命令将masters文件同步到其他节点
七、启动HDFS
[root@DEV-SH-MAP- conf]# start-dfs.sh
Starting namenodes on [DEV-SH-MAP-]
DEV-SH-MAP-: starting namenode, logging to /usr/hadoop-2.7./logs/hadoop-root-namenode-DEV-SH-MAP-.out
DEV-SH-MAP-: starting datanode, logging to /usr/hadoop-2.7./logs/hadoop-root-datanode-DEV-SH-MAP-.out
DEV-SH-MAP-: starting datanode, logging to /usr/hadoop-2.7./logs/hadoop-root-datanode-DEV-SH-MAP-.out
DEV-SH-MAP-: starting datanode, logging to /usr/hadoop-2.7./logs/hadoop-root-datanode-DEV-SH-MAP-.out
Starting secondary namenodes [0.0.0.0]
0.0.0.0: starting secondarynamenode, logging to /usr/hadoop-2.7./logs/hadoop-root-secondarynamenode-DEV-SH-MAP-.out
八、启动Zookeeper集群
[root@DEV-SH-MAP- conf]# start-zookeeper-quorum.sh
Starting zookeeper daemon on host DEV-SH-MAP-.
Starting zookeeper daemon on host DEV-SH-MAP-.
Starting zookeeper daemon on host DEV-SH-MAP-.
【注】这里使用的命令start-zookeeper-quorum.sh是FLINK_HOME/bin中的脚本
九、启动Flink集群
[root@DEV-SH-MAP- conf]# start-cluster.sh
Starting HA cluster with masters.
Starting jobmanager daemon on host DEV-SH-MAP-.
Starting jobmanager daemon on host DEV-SH-MAP-.
Starting taskmanager daemon on host DEV-SH-MAP-.
Starting taskmanager daemon on host DEV-SH-MAP-.
Starting taskmanager daemon on host DEV-SH-MAP-.
可以看到,启动了两个JobManager,一个Leader,一个Standby
十、测试HA
10.1 访问Leader的WebUI:

10.2 访问StandBy的WebUI
这时也会跳转到Leader的WebUI

10.3 Kill掉Leader
[root@DEV-SH-MAP- flink-1.3.]# jps
Jps
TaskManager
DataNode
SecondaryNameNode
JobManager
FlinkZooKeeperQuorumPeer
NameNode
[root@DEV-SH-MAP- flink-1.3.]# kill -9 34562
[root@DEV-SH-MAP- flink-1.3.]# jps
TaskManager
DataNode
SecondaryNameNode
Jps
FlinkZooKeeperQuorumPeer
NameNode
再次访问Flink WebUI,发现Leader已经发生切换

10.4 重启被Kill掉的JobManager
[root@DEV-SH-MAP- bin]# jobmanager.sh start cluster DEV-SH-MAP-01
Starting jobmanager daemon on host DEV-SH-MAP-.
[root@DEV-SH-MAP- bin]# jps
TaskManager
DataNode
SecondaryNameNode
JobManager
Jps
FlinkZooKeeperQuorumPeer
NameNode
再次查看WebUI,发现虽然以前被Kill掉的Leader起来了,但是现在仍是StandBy,现有的Leader不会发生切换,也就是Flink下面的示意图:

十一、存在的问题
JobManager发生切换时,TaskManager也会跟着发生重启
Flink JobManager HA模式部署(基于Standalone)的更多相关文章
- 一脸懵逼学习Hadoop分布式集群HA模式部署(七台机器跑集群)
1)集群规划:主机名 IP 安装的软件 运行的进程master 192.168.199.130 jdk.hadoop ...
- 分布式集群HA模式部署
一:HDFS系统架构 (一)利用secondary node备份实现数据可靠性 (二)问题:NameNode的可用性不高,当NameNode节点宕机,则服务终止 二:HA架构---提高NameNode ...
- 搭建高可用的flink JobManager HA
JobManager协调每个flink应用的部署,它负责执行定时任务和资源管理. 每一个Flink集群都有一个jobManager, 如果jobManager出现问题之后,将不能提交新的任务和运行新任 ...
- Flink集群模式部署及案例执行
一.软件要求 Flink在所有类UNIX的环境[例如linux,mac os x和cygwin]上运行,并期望集群由一个 主节点和一个或多个工作节点组成.在开始设置系统之前,确保在每个节点上都安装了一 ...
- Spark部署三种方式介绍:YARN模式、Standalone模式、HA模式
参考自:Spark部署三种方式介绍:YARN模式.Standalone模式.HA模式http://www.aboutyun.com/forum.php?mod=viewthread&tid=7 ...
- 第06讲:Flink 集群安装部署和 HA 配置
Flink系列文章 第01讲:Flink 的应用场景和架构模型 第02讲:Flink 入门程序 WordCount 和 SQL 实现 第03讲:Flink 的编程模型与其他框架比较 第04讲:Flin ...
- [hadoop][会装]HBase集群安装--基于hadoop ha模式
可以参考部署HBase系统(分布式部署) 和基于无HA模式的hadoop下部署相比,主要是修改hbase-site .xml文件,修改如下参数即可: <property> <name ...
- Spark运行模式与Standalone模式部署
上节中简单的介绍了Spark的一些概念还有Spark生态圈的一些情况,这里主要是介绍Spark运行模式与Spark Standalone模式的部署: Spark运行模式 在Spark中存在着多种运行模 ...
- Spark集群基于Zookeeper的HA搭建部署笔记(转)
原文链接:Spark集群基于Zookeeper的HA搭建部署笔记 1.环境介绍 (1)操作系统RHEL6.2-64 (2)两个节点:spark1(192.168.232.147),spark2(192 ...
随机推荐
- windows下配置cygwin和dig的环境变量
配置cygwin和dig的环境变量 打开"控制面板"("开始">"设置">"控制面板"),然后双击" ...
- 两百条微信小程序跳坑指南(不定时更新)
微信小程序联盟出品 跳坑textarea<二百二十三>不显示文本及textarea相关问题集合跳坑<二百一十三> background-image无法获取本地资源图片....跳 ...
- Charles录制App的接口har文件
Charles录制App的接口har文件 如果我们想录制我们自己App后台请求接口的信息,并生成har文件,要怎么做呢?其实很简单,就是通过Charles,让手机的访问请求走这个Charles代理就行 ...
- <EffectiveJava>读书笔记--01继承的使用注意
1, 父类的构造器方法中不能调用能够被子类重写的方法. 分析: 当初始化一个子类时, 首先要初始化父类, 即调用父类的构造方法; 如果父类的构造方法中调用了可被重写的其它方法, 那么此时调用的其实是该 ...
- LoadRunner性能测试-LoadRunner工具安装
Loadrunner11安装 1,在网上下载loadrunner11安装包 (百度可以下载安装包) 2,打开安装文件,点击setup.exe进行安装: 3,win10系统可能会出现如下问题: 提示管理 ...
- Java基础之String类
String类 字符串是不可变的,对其做的任何改变,会生成一个对象,不会改变有原有对象. ==和equals() String s1 = "good"; String s2 = & ...
- python3.6成功安装scrapy
本文基于环境:win10(64)+python3.6(64) 第一次直接pip install scrapy,安装出错,错误提示 error: Microsoft Visual C++ 14.0 is ...
- java_弹球小游戏
弹球游戏实现原理: 隔一定时间(小于1秒)重新绘制图像,因为Graphics类是一个抽象类,创建子类的时候需要把所有涉及的方法都得重写,所以这里使用的是创建Canvas的子类,只需要重写它的paint ...
- mysql忘记密码,修改密码重新安装的一些问题
前言 想要装cobra,却意外发现mysql连接失败,命令行连一下发现无论怎么样都连不上了. 我能想到的密码都用上了,糟糕!看来只能修改密码,或者重装了. 最后是重装搞定的,当然也发现了正确的修改密码 ...
- The ways to kill Oracle session
As we all known ,its the normal way to use the SQL 'alter system kill 'sid,serial#'' to kill a ses ...