参考文章: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)的更多相关文章

  1. 一脸懵逼学习Hadoop分布式集群HA模式部署(七台机器跑集群)

    1)集群规划:主机名        IP      安装的软件                     运行的进程master    192.168.199.130   jdk.hadoop      ...

  2. 分布式集群HA模式部署

    一:HDFS系统架构 (一)利用secondary node备份实现数据可靠性 (二)问题:NameNode的可用性不高,当NameNode节点宕机,则服务终止 二:HA架构---提高NameNode ...

  3. 搭建高可用的flink JobManager HA

    JobManager协调每个flink应用的部署,它负责执行定时任务和资源管理. 每一个Flink集群都有一个jobManager, 如果jobManager出现问题之后,将不能提交新的任务和运行新任 ...

  4. Flink集群模式部署及案例执行

    一.软件要求 Flink在所有类UNIX的环境[例如linux,mac os x和cygwin]上运行,并期望集群由一个 主节点和一个或多个工作节点组成.在开始设置系统之前,确保在每个节点上都安装了一 ...

  5. Spark部署三种方式介绍:YARN模式、Standalone模式、HA模式

    参考自:Spark部署三种方式介绍:YARN模式.Standalone模式.HA模式http://www.aboutyun.com/forum.php?mod=viewthread&tid=7 ...

  6. 第06讲:Flink 集群安装部署和 HA 配置

    Flink系列文章 第01讲:Flink 的应用场景和架构模型 第02讲:Flink 入门程序 WordCount 和 SQL 实现 第03讲:Flink 的编程模型与其他框架比较 第04讲:Flin ...

  7. [hadoop][会装]HBase集群安装--基于hadoop ha模式

    可以参考部署HBase系统(分布式部署) 和基于无HA模式的hadoop下部署相比,主要是修改hbase-site .xml文件,修改如下参数即可: <property> <name ...

  8. Spark运行模式与Standalone模式部署

    上节中简单的介绍了Spark的一些概念还有Spark生态圈的一些情况,这里主要是介绍Spark运行模式与Spark Standalone模式的部署: Spark运行模式 在Spark中存在着多种运行模 ...

  9. Spark集群基于Zookeeper的HA搭建部署笔记(转)

    原文链接:Spark集群基于Zookeeper的HA搭建部署笔记 1.环境介绍 (1)操作系统RHEL6.2-64 (2)两个节点:spark1(192.168.232.147),spark2(192 ...

随机推荐

  1. 怎么去掉javascript 的Array的重复项

    //完美去除法: var arr=[1,3,2,2,11,4]; var arr1=[]; var arr2=arr.sort(function(a,b){ return a-b; }); //把数组 ...

  2. centos7 Mysql备份还原并下载到windos

    数据库备份 1.show databases; #查看一下数据库 2.对应数据库做备份开始: mysqldump -u root -p 需要备份的数据库 >  db.sql     #把它备份到 ...

  3. 基于.net的微服务架构的开发测试环境运维实践

    眼下,做互联网应用,最火的架构是微服务,最热的研发管理就是DevOps, 没有之一.微服务.DevOps已经被大量应用,它们已经像传说中的那样,可以无所不能.特来电云平台,通过近两年多的实践,发现完全 ...

  4. 初学Python(八)——迭代

    初学Python(八)——迭代 初学Python,主要整理一些学习到的知识点,这次是迭代. # -*- coding:utf-8 -*- from collections import Iterabl ...

  5. ida和idr机制分析(盘符分配机制)

    # ida和idr机制分析 ida和idr的机制在我个人看来,是内核管理整数资源的一种方法.在内核中,许多地方都用到了该结构(例如class的id,disk的id),更直观的说,硬盘的sda到sdz的 ...

  6. Section 1.1 Your Ride Is Here

    Your Ride Is Here It is a well-known fact that behind every good comet is a UFO. TheseUFOs often com ...

  7. 使用rem来做响应式布局(js动态加载)

    <script> ;(function (doc,win) { var htmlEle=doc.documentElement; var reload="orientationc ...

  8. Java入门——(4)多线程

      关键词:线程.Thread.Runnable.sleep().yield().join().同步   一.线程的概述 在一个操作系统中,每个独立执行的程序都可以称为一个进程,也就是"正在 ...

  9. MySQL数据库—查询基础,简单查询,条件查询,对查询结果排序

    一.SELECT语句 SELECT COL1,COL2,....COLn FROM TABLE1,TABLE2,....TABLEn [WHERE CONDITIONS] -- 查询条件 [GROUP ...

  10. css盒子边框样式

    边框样式有全边框和单个边框样式,可对每条边设置不同的样式 如下代码P1为全边框样式,P2为单个边框设置不同的样式: <!DOCTYPE html> <html lang=" ...