Flink Standalone 集群 HA 配置

1. HA 集群环境规划 使用三台节点实现两主两从集群(由于笔记本性能限制,不能开启太多虚拟机,其实使用三 台和四台机器在安装配置上没有本质区别) Jobmanager:hadoop100hadoop101【一个 active,一个 standby】 Taskmanager:hadoop101hadoop102 zookeeper:hadoop100【建议使用外置 zk 集群,在这里我使用单节点 zk 来代替】
注意: 要启用 JobManager 高可用性,必须将高可用性模式设置为 zookeeper, 配置一个 ZooKeeper quorum,并配置一个 masters 文件 存储所有 JobManagerhostname 及其 WebUI 端口号。
Flink 利用 ZooKeeper 实现运行中的 JobManager 节点之间的分布式协调。ZooKeeper 是独立 于 Flink 的服务,它通过领导选举制和轻量级状态一致性存储来提供高度可靠的分布式协调。
2. 开始配置+启动 集群内所有节点的配置都一样,所以先从第一台机器 hadoop100 开始配置 sshhadoop100 #首先按照之前配置 standalone 的参数进行修改 viconf/flink-conf.yaml jobmanager.rpc.address:hadoop100
viconf/slaves hadoop101 hadoop102
# 然后修改配置 HA 需要的参数 viconf/masters
hadoop100:8081 hadoop101:8081
viconf/flink-conf.yaml high-availability:zookeeper high-availability.zookeeper.quorum:hadoop100:2181 #ZooKeeper 节点根目录,其下放置所有集群节点的 namespace high-availability.zookeeper.path.root:/flink #ZooKeeper 节点集群 id,其中放置了集群所需的所有协调数据 high-availability.cluster-id:/cluster_one # 建议指定 hdfs 的全路径。如果某个 flink 节点没有配置 hdfs 的话,不指定全路径无法识别 #storageDir 存储了恢复一个 JobManager 所需的所有元数据。 high-availability.storageDir:hdfs://hadoop100:9000/flink/ha
# 把 hadoop100 节点上修改好配置的 flink 安装目录拷贝到其他节点 cd/data/soft/ scp-rqflink-1.4.2hadoop101:/data/soft scp-rqflink-1.4.2hadoop102:/data/soft
# 【先启动 hadoop 服务】 sbin/start-all.sh # 【先启动 zk 服务】 bin/zkServer.shstart # 启动 flinkstandaloneHA 集群,在 hadoop100 节点上启动如下命令 bin/start-cluster.sh
# 启动之后会显示如下日志信息 StartingHAclusterwith2masters. Startingstandalonesessiondaemononhosthadoop100. Startingstandalonesessiondaemononhosthadoop101. Startingtaskexecutordaemononhosthadoop101. Startingtaskexecutordaemononhosthadoop102.
3. 验证 HA 集群进程 查看机器进程会发现如下情况【此处只列出 flink 自身的进程信息,不包含 zk,hadoop 进程 信息】 登录 hadoop100 节点 执行 jps: 20159StandaloneSessionClusterEntrypoint
登录 hadoop101 节点 执行 jps: 7795StandaloneSessionClusterEntrypoint
8156TaskManagerRunner
登录 hadoop102 节点 执行 jps: 5046TaskManagerRunner
因为 jobmanager 节点都会启动 web 服务,也可以通过 web 界面进行验证 访问 http://hadoop100:8081/#/jobmanager/config 发现以下信息: 注意:此时就算是访问 hadoop101:8081 也会跳转回 hadoop100:8081 因为现在 hadoop100 是 active 的 jobmanager。从下图中也可以看出,点击 jobmanager 查看,显示哪个节点,就 表示哪个节点现在是 active 的。
4. 模拟 jobmanager 进程挂掉 现在 hadoop100 节点上的 jobmanager 是 active 的。我们手工把这个进程 kill 掉,模拟进程 挂掉的情况,来验证hadoop101上的standby状态的jobmanager是否可以正常切换到active。 sshhadoop100 执行 jps: 20159StandaloneSessionClusterEntrypoint
kill20159
5. 验证 HA 切换 hadoop100 节点上的 jobmanager 进程被手工 kill 掉了,然后 hadoop101 上的 jobmanager 会 自动切换为 active,中间需要有一个时间差,稍微等一下 访问 http://hadoop101:8081/#/jobmanager/config 如果可以正常访问并且能看到 jobmanager 的信息变为 hadoop101,则表示 jobmanager 节点 切换成功
6. 重启之前 kill 掉的 jobmanager 进入到 hadoop100 机器 sshhadoop100 执行下面命令启动 jobmanager bin/jobmanager.shstart
启动成功之后,可以访问 http://hadoop100:8081/#/jobmanager/config 这个节点重启启动之后,就变为 standby 了。hadoop101 还是 active。

Flink on yarn 集群 HA 配置

1. HA 集群环境规划 flinkonyarn 的 HA 其实是利用 yarn 自己的恢复机制。
在这需要用到 zk,主要是因为虽然 flink-on-yarnclusterHA 依赖于 Yarn 自己的集群机制,但 是 FlinkJob 在恢复时,需要依赖检查点产生的快照,而这些快照虽然配置在 hdfs,但是其元 数据信息保存在 zookeeper 中,所以我们还要配置 zookeeper 的信息
hadoop 搭建的集群,在 hadoop100,hadoop101,hadoop102 节点上面【flinkon yarn 使用 伪分布 hadoop 集群和真正分布式 hadoop 集群,在操作上没有区别】 zookeeper 服务也在 hadoop100 节点上
2. 开始配置+启动 主要在 hadoop100 这个节点上配置即可
首先需要修改 hadoop 中 yarn-site.xml 中的配置,设置提交应用程序的最大尝试次数 <property> <name>yarn.resourcemanager.am.max-attempts</name> <value>4</value> <description> Themaximumnumberofapplicationmasterexecutionattempts. </description> </property>
# 把修改后的配置文件同步到 hadoop 集群的其他节点 scp-rqetc/hadoop/yarn-site.xml hadoop101:/data/soft/hadoop-2.7.5/etc/hadoop/ scp-rqetc/hadoop/yarn-site.xml hadoop102:/data/soft/hadoop-2.7.5/etc/hadoop/
然后修改 flink 部分相关配置 可以解压一份新的 flink-1.6.1 安装包 tar-zxvfflink-1.6.1-bin-hadoop27-scala_2.11.tgz
修改配置文件【标红的目录名称建议和 standaloneHA 中的配置区分开】 viconf/flink-conf.yaml high-availability:zookeeper high-availability.zookeeper.quorum:hadoop100:2181 high-availability.storageDir:hdfs://hadoop100:9000/flink/ha-yarn high-availability.zookeeper.path.root:/flink-yarn yarn.application-attempts:10
3. 启动 flinkonyarn,测试 HA 先启动 hadoop100 上的 zookeeper 和 hadoop bin/zkServer.shstart sbin/start-all.sh
在 hadoop100 上启动 Flink 集群 cd/data/soft/flink-1.6.1 bin/yarn-session.sh-n2
到 resoucemanager 的 web 界面上查看对应的 flink 集群在哪个节点上
jobmanager 进程就在对应的节点的(YarnSessionClusterEntrypoint)进程里面
所以想要测试 jobmanager 的 HA 情况,只需要拿 YarnSessionClusterEntrypoint 这个进程进行 测试即可。
执行下面命令手工模拟 kill 掉 jobmanager(YarnSessionClusterEntrypoint)、 sshhadoop102 jps 5325YarnSessionClusterEntrypoint
kill5325
然后去 yarn 的 web 界面进行查看:
发现这个程序的 AttemptId 变为 00002 了
如果想查看 jobmanager 的 webui 界面可以点击下面链接:
注意:针对上面配置文件中的一些配置参数的详细介绍信息可以参考此文章 https://blog.csdn.net/xu470438000/article/details/79633824 但是需要注意一点,此链接文章中使用的 flink 版本是 1.4.2。我们本课程中使用的 flink 版本 是 1.6.1,这两个版本中的一些参数名称会有细微不同。但是参数的含义基本没有什么变化。

flink两种安装方式的更多相关文章

  1. wdcp支持两种安装方式

    v3.2版本已发布,支持多PHP版本共存共用,支持SSL证书,更多可看论坛 v3版讨论区 更多安装说明请看 http://www.wdlinux.cn/bbs/thread-57643-1-1.htm ...

  2. Linux 下wdcp支持两种安装方式

    wdcp支持两种安装方式1 源码编译 此安装比较麻烦和耗时,一般是20分钟至一个小时不等,具体视机器配置情况而定2 RPM包安装 简单快速,下载快的话,几分钟就可以完成源码安装(ssh登录服务器,执行 ...

  3. ZendFramework 两种安装方式

    1. 在线安装(基于composer) Zend 应用程序骨架 GitHub 地址: https://github.com/zendframework/ZendSkeletonApplication ...

  4. eclipse中testNG的两种安装方式

    今天给大家带来两种关于testNG中的安装方式:1.在线安装(本人亲测有效!!!)2.离线安装 一.在线安装testNG插件的步骤: 1.给大家提供一个testNG在线的安装的地址:http://dl ...

  5. Windows下Yii2框架的两种安装方式及升级最新版

    第一种:归档文件形式安装(适合于没有安装composer的机器) 进入下载页https://www.yiiframework.com/download,选择下载第一个 下载完成之后是一个压缩包,解压文 ...

  6. MY SQL 两种安装方式

    MySQL基础知识-安装MySQL   前导: 昨天去参加了一个面试,公司不太大,是一家日资企业,在国内有几家分公司,面试官问到了MySQL的基本操作和性能优化,说了一大堆,倒是比较轻松的过了,但是面 ...

  7. struts2+spring的两种整合方式

    也许有些人会因为学习了struts1,会以为struts2.struts1与spring的整合也是一样的,其实这两者相差甚远.下面就来讲解一下struts2与spring的整合两种方案.(部分转载,里 ...

  8. Windows校验文件哈希hash的两种常用方式

    大家经常都到哪儿去下载软件和应用程序呢?有没想过下载回来的软件.应用程序或资源是否安全呢?在 Windows 10 和 Office 2016 发布当初,很多没权限的朋友都使用第三方网站去下载安装映像 ...

  9. Adobe Acrobat XI Pro 两种破解方式 Keygen秘钥 license替换 亲测有效

    大家平时看paper比较多的话想必都是用Adobe Acrobat而非Adobe Reader吧,其功能全面之处就不啰嗦了,下面给大家分享下Adobe Acrobat XI Pro的两种破解方式(两种 ...

随机推荐

  1. 7月清北学堂培训 Day 3

    今天是丁明朔老师的讲授~ 数据结构 绪论 下面是天天见的: 栈,队列: 堆: 并查集: 树状数组: 线段树: 平衡树: 下面是不常见的: 主席树: 树链剖分: 树套树: 下面是清北学堂课程表里的: S ...

  2. 2019.6.28 校内测试 T2 【音乐会】二重变革

    看到这个题之后,一个很暴力很直接的想法就是贴上题目中的代码然后交上去走人,但是很显然这是会TLE+MLE的,想想谁会这么傻把主要代码给你QwQ~: 其实这段代码是想告诉你一件事:用序列中的大数减去小数 ...

  3. POJ 3616 Milking Time ——(记忆化搜索)

    第一眼看是线段交集问题,感觉不会= =.然后发现n是1000,那好像可以n^2建图再做.一想到这里,突然醒悟,直接记忆化搜索就好了啊..太蠢了.. 代码如下: #include <stdio.h ...

  4. JDK1.6历史版本的下载(關於TLSv1.2)Oracle的官方文檔

    [资源描述]:对于部分老项目 仍然采用的是JDK1.6 版本 但是打开官方 JDK 都是最新的 版本 想找 历史版本 不容易找到 [资源详情]:提供下载链接: http://www.oracle.co ...

  5. Shiro RememberMe 1.2.4远程代码执行漏洞-详细分析

    本文首发于先知: https://xz.aliyun.com/t/6493 0x01.漏洞复现 环境配置 https://github.com/Medicean/VulApps/tree/master ...

  6. Windows下MongoDB的安装过程及基本配置

    首先当然是到官网下载 MongoDB 了,点击进入后会看到下载页面,如下图所示: 安装有2种方式: 一种是通过直接点击下载的安装文件进行安装: 另一种是通过命令提示符来安装,下面我将直接通过第一种方式 ...

  7. maven打包遇到错误,Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.1:test

    对Pom文件进行配置(亲自尝试,已成功解决) <build> <plugins> <plugin> <groupId>org.apache.maven. ...

  8. Clock Generator PLL with Integrated VCO_ADF4360-9

    Clock Generator PLL with Integrated VCO_ADF4360-9     2和3之间需要有大于15ms的时间间隔

  9. C之数据类型

    java的数据类型 byte 1个字节 boolean 1个字节 short 2个字节 char 2个字节 int 4个字节 float 4个字节 long 8个字节 double 8个字节 c语言的 ...

  10. Eclipse的视窗

    PackageExplorer 显示项目结构,包,类,及资源 Outline 显示类的结构,方便查找,识别,修改 Console 程序运行的结果在该窗口显示 Hierarchy 显示Java继承层次结 ...