flink两种安装方式
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两种安装方式的更多相关文章
- wdcp支持两种安装方式
v3.2版本已发布,支持多PHP版本共存共用,支持SSL证书,更多可看论坛 v3版讨论区 更多安装说明请看 http://www.wdlinux.cn/bbs/thread-57643-1-1.htm ...
- Linux 下wdcp支持两种安装方式
wdcp支持两种安装方式1 源码编译 此安装比较麻烦和耗时,一般是20分钟至一个小时不等,具体视机器配置情况而定2 RPM包安装 简单快速,下载快的话,几分钟就可以完成源码安装(ssh登录服务器,执行 ...
- ZendFramework 两种安装方式
1. 在线安装(基于composer) Zend 应用程序骨架 GitHub 地址: https://github.com/zendframework/ZendSkeletonApplication ...
- eclipse中testNG的两种安装方式
今天给大家带来两种关于testNG中的安装方式:1.在线安装(本人亲测有效!!!)2.离线安装 一.在线安装testNG插件的步骤: 1.给大家提供一个testNG在线的安装的地址:http://dl ...
- Windows下Yii2框架的两种安装方式及升级最新版
第一种:归档文件形式安装(适合于没有安装composer的机器) 进入下载页https://www.yiiframework.com/download,选择下载第一个 下载完成之后是一个压缩包,解压文 ...
- MY SQL 两种安装方式
MySQL基础知识-安装MySQL 前导: 昨天去参加了一个面试,公司不太大,是一家日资企业,在国内有几家分公司,面试官问到了MySQL的基本操作和性能优化,说了一大堆,倒是比较轻松的过了,但是面 ...
- struts2+spring的两种整合方式
也许有些人会因为学习了struts1,会以为struts2.struts1与spring的整合也是一样的,其实这两者相差甚远.下面就来讲解一下struts2与spring的整合两种方案.(部分转载,里 ...
- Windows校验文件哈希hash的两种常用方式
大家经常都到哪儿去下载软件和应用程序呢?有没想过下载回来的软件.应用程序或资源是否安全呢?在 Windows 10 和 Office 2016 发布当初,很多没权限的朋友都使用第三方网站去下载安装映像 ...
- Adobe Acrobat XI Pro 两种破解方式 Keygen秘钥 license替换 亲测有效
大家平时看paper比较多的话想必都是用Adobe Acrobat而非Adobe Reader吧,其功能全面之处就不啰嗦了,下面给大家分享下Adobe Acrobat XI Pro的两种破解方式(两种 ...
随机推荐
- Cogs 1500. 误差曲线(三分)
误差曲线 ★★ 输入文件:errorcurves.in 输出文件:errorcurves.out 评测插件 时间限制:1 s 内存限制:256 MB [题目描述] Josephina是一名聪明的妹子, ...
- 18.4.1 考试解题报告 P71
题目:https://files.cnblogs.com/files/lovewhy/problem.pdf 偷偷摘来dalao题面. P71竞赛时间:???? 年?? 月?? 日??:??-??:? ...
- 创建全局变量用以保存传递MFC中不同窗口中的数据
格式如下: //DATA_TEMP.h class CDATA_TEMP{public: CDATA_TEMP(); virtual ~CDATA_TEMP();public: static int ...
- 【线性代数】6-2:对角化(Diagonalizing a Matrix)
title: [线性代数]6-2:对角化(Diagonalizing a Matrix) categories: Mathematic Linear Algebra keywords: Eigenva ...
- 格符\b的使用示例:每隔1秒消去1个字符
/* 退格符\b的使用示例:每隔1秒消去1个字符 */ #include <time.h> #include <stdio.h> /*--- 等待x毫秒 ---*/ int s ...
- ThreadGroupAPI
官方解释 public class ThreadGroup extends Object implements Thread.UncaughtExceptionHandler A thread gro ...
- python异常链
习惯使用java开发,在java开发里有异常链概念和重新抛出异常,在python是怎么实现的呢? 1.异常链 1.1.java实现 public static void test1() throws ...
- intel官方的手册
最近在学习汇编语言,需要用到intel的手册,无论是csdn还是其他的,都要下载币,还不便宜,也很老的资料了. 直接到这个地址:https://software.intel.com/en-us/art ...
- 6.3 MRUnit写Mapper和Reduce的单元测试
1.1 MRUnit写单元测试 作用:一旦MapReduce项目提交到集群之后,若是出现问题是很难定位和修改的,只能通过打印日志的方式进行筛选.又如果数据和项目较大时,修改起来则更加麻烦.所以,在将 ...
- js/jQuery中的宽高
一.和window有关的宽高 window.innerWidth:浏览器窗口宽度 window.innerHeight:浏览器窗口高度(不包括导航,工具栏等的高度) window.outerWidth ...