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. 牛客小白月赛11 Rinne Loves Edges

    题库链接:https://ac.nowcoder.com/acm/contest/370/F code: #include<bits/stdc++.h> using namespace s ...

  2. 【csp模拟赛3】bridge.cpp--矩阵加速递推

    题目描述 穿越了森林,前方有一座独木桥,连接着过往和未来(连接着上一题和下一题...). 这座桥无限长. 小 Q 在独木桥上彷徨了.他知道,他只剩下了 N 秒的时间,每一秒的时间里,他会向 左或向右移 ...

  3. access函数

    access函数是按照实际用户ID和实际组ID进行访问测试的.函数的定义如下: #include <unistd.h> int access(const char* pathname, i ...

  4. mac 安装软件 显示信任任何来源

    “通用”里有时没有“任何来源”这个选项: 显示"任何来源"选项在控制台中执行: sudo spctl --master-disable 不显示"任何来源"选项( ...

  5. MONGODB 数据库回复备份

    1.导出工具:mongoexport     1.概念:         mongoDB中的mongoexport工具可以把一个collection导出成JSON格式或CSV格式的文件.可以通过参数指 ...

  6. Java中RuntimeException和Exception

    在java的异常类体系中,Error和RuntimeException是非检查型异常,其他的都是检查型异常. 所有方法都可以在不声明throws的情况下抛出RuntimeException及其子类 不 ...

  7. G-LAB四月份作业-数据可视化问题探讨

    G-LAB四月份作业-数据可视化问题探讨 引子: 数据平台项目建设正在按照公司的计划开展执行中,作为平台建设项目参与者之一,感觉目前我们现有的MIS报表平台数据也不可谓不丰富,但是不论从提供给用户的数 ...

  8. ASP.NET的MVC设计模式

    当开发者听到“设计模式”这个词时,他们通常联想到两个场景.一组开发者正在讨论许多创造性意见,正在开会,但是却没有进行编码.另外一组人能制定出正确的计划,保证系统能够开发成功,代码可以重用. 而现实一般 ...

  9. pwn学习日记Day7 基础知识积累

    知识杂项 strncpy(char s1,const char s2,int n); 其中有三个参数分别表示目标字符串s1,源字符串s2,拷贝长度.意思是将s2指向的字符串的前n个长度的字符放到s1指 ...

  10. apt如何列出所有已经安装的软件包

    apt如何列出所有已经安装的软件包 转 https://www.helplib.com/ubuntu/article_155294 问题: 我想将所有已安装软件包的列表输出到文本文件中,以便我可以查看 ...