大数据Flink进阶(十六):Flink HA搭建配置 当前快看
腾讯云 2023-04-10 10:28:27

Flink HA搭建配置

默认情况下,每个Flink集群只有一个JobManager,这将导致单点故障(SPOF,single point of failure),如果这个JobManager挂了,则不能提交新的任务,并且运行中的程序也会失败,这是我们可以对JobManager做高可用(High Availability,简称HA),JobManager HA集群当Active JobManager节点挂掉后可以切换其他Standby JobManager成为主节点,从而避免单点故障。用户可以在Standalone、Flink on Yarn、Flink on K8s集群模式下配置Flink集群HA,Flink on K8s集群模式下的HA将单独在K8s里介绍。

一、Flink基于Standalone HA

Standalone模式下,JobManager的高可用性的基本思想是,任何时候都有一个Alive JobManager和多个Standby JobManager。Standby JobManager可以在Alive JobManager挂掉的情况下接管集群成为Alive JobManager,这样避免了单点故障,一旦某一个Standby JobManager接管集群,程序就可以继续运行。Standby JobManagers和Alive JobManager实例之间没有明确区别,每个JobManager都可以成为Alive或Standby。


(资料图片)

1、Standalone HA配置

Standalone集群部署下实现JobManager HA 需要依赖ZooKeeper和HDFS,Zookeeper负责协调JobManger失败后的自动切换,HDFS中存储每个Flink任务的执行流程数据,因此要有一个ZooKeeper集群和Hadoop集群。这里我们选择3台节点作为Flink的JobManger,如下:

节点IP

节点名称

JobManager

TaskManager

192.168.179.4

node1

192.168.179.5

node2

192.168.179.6

node3

以上node1、node2、node3都是JobManager,同时只能有1个JobManager为Active主节点,其他为StandBy备用节点,配置JobManager HA 步骤如下:

所有Flink节点配置hadoop classpath

由于Flink JobManager HA 中需要连接HDFS存储job数据,所以Flink所有节点必须配置hadoop classpath 环境变量,在node1-3所有节点上配置/etc/profile配置环境变量:

#配置/etc/profileexport HADOOP_CLASSPATH=`hadoop classpath`#执行生效source /etc/profile
配置masters文件

需要在所有Flink集群节点上配置$FLINK_HOME/conf/master文件,配置上所有的JobManager节点信息:

#node1,node2,node3节点上配置$FLINK_HOME/conf/master文件node1:8081node2:8081node3:8081
配置flink-conf.yaml

需要在所有Flink集群节点上配置$FLINK_HOME/conf/flink-conf.yaml文件,这里在node1-3节点上配置,配置内容如下:

#要启用高可用,选主协调者为zookeeper,zk存储一些ck记录及选举信息high-availability: zookeeper#storageDir存储恢复JobManager失败所需的所有元数据,如:job dataflow信息high-availability.storageDir: hdfs://mycluster/flink-standalone-ha/#分布式协调器zookeeper集群high-availability.zookeeper.quorum: node3:2181,node4:2181,node5:2181#根ZooKeeper节点,所有集群节点都位于根节点之下。high-availability.zookeeper.path.root: /flink-standalone-ha#给当前集群指定cluster-id,集群所有需要的协调数据都放在该节点下。high-availability.cluster-id: /standalone-cluster

2、启动测试

Standalone HA 配置完成后,按照如下步骤进行测试:

启动Zookeeper,启动HDFS
#在 node3、node4、node5节点启动zookeeper[root@node3 ~]#  zkServer.sh start[root@node4 ~]#  zkServer.sh start[root@node5 ~]#  zkServer.sh start#在node1启动HDFS集群[root@node1 ~]# start-all.sh
启动Flink Standalone HA集群
#在node1 节点启动Flink Standalone HA集群[root@node1 ~]# cd /software/flink-1.16.0/bin/[root@node1 bin]# ./start-cluster.shStarting HA cluster with 3 masters.Starting standalonesession daemon on host node1.Starting standalonesession daemon on host node2.Starting standalonesession daemon on host node3.Starting taskexecutor daemon on host node1.Starting taskexecutor daemon on host node2.Starting taskexecutor daemon on host node3.

启动Standaloe集群时同时会在node2、node3节点上启动JobManager。

访问Flink WebUI

登录Flink WebUI (https://node1:8081/https://node2:8081/https://node3:8081),无论登录node1,node2,node3节点任意一台节点的WebUI 页面都相同:

在WebUI中无法看到哪个节点是Active JobManager,我们也可以通过zookeeper查看当前Active JobManager节点,命令如下:

#登录zookeeper 客户端[root@node5 ~]# zkCli.sh#查看对应节点路径信息[zk: localhost:2181(CONNECTED) 1] get /flink-standalone-ha/standalone-cluster/leader/dispatcher/connection_info ...w42akka.tcp://flink@node1:33274/user/rpc/dispatcher_1srjava.util.UUID...
测试JobManager切换

我们可以在Flink Standalone集群中提交一个Flink 任务,提交之后无论在通过哪个节点的8081WebUI都可以看到此任务。提交任务命令如下:

#在node5节点启动 socket服务[root@node5 ~]# nc -lk 9999#在node4客户端向Standalone集群提交任务[root@node4 ~]# cd /software/flink-1.16.0/bin[root@node4 bin]# ./flink run -m node1:8081 -d -c com.mashibing.flinkjava.code.chapter3.SocketWordCount /root/FlinkJavaCode-1.0-SNAPSHOT-jar-with-dependencies.jar

通过https://node1:8081、https://node2:8081、https://node3:8081 WebUI都可以看到提交的任务信息:

在HDFS中也可以看到提交的任务信息:

将node1节点上的JobManager进程kill掉,查看Active JobManager是否变化:

#kill node1 JobManager进程[root@node1 bin]# jps...16309 StandaloneSessionClusterEntrypoint...[root@node1 bin]# kill -9 16309

将Active JobManager kill之后访问各个节点的WebUI可以看到短暂的不可用,稍等一会就可以看到正常可以访问除node1之外的其他节点WebUI,通过查询Zookeeper中节点信息,可以看到Active JobManager 节点切换成了其他节点:

#zookeeper查询命令[zk: localhost:2181(CONNECTED) 1] get /flink-standalone-ha/standalone-cluster/leader/dispatcher/connection_info...w42akka.tcp://flink@node2:35581/user/rpc/dispatcher_1srjava.util.UUID...

通过以上测试Flink Standalone HA 生效,如果想要把在node1上kill掉的JobManager启动起来,需要手动执行如下命令:

#在node1启动JobManager[root@node1 bin]# ./jobmanager.sh start

被kill的JobManager重新启动后作为备用的JobManager也可以访问WebUI查看集群中执行的任务。

二、Flink 基于Yarn HA

正常基于Yarn提交Flink程序,无论使用哪种模式提交任务都会启动JobManager角色,JobManager角色是哪个进程可以通过Yarn WebUI查看对应的ApplicationID启动所在节点的对应进程, Yarn Session提交任务模式中该角色进程为"YarnSessionClusterEntrypoint"、Yarn Per-Job提交任务模式中该角色进程为"YarnJobClusterEntrypoint"、Yarn Application提交任务模式中该角色进程为"YarnApplicationClusterEntryPoint"。

当JobManager进程挂掉后,也就是Yarn Application任务失败后默认不会进行任务重试,所以Flink 基于Yarn JobManager HA的本质是当Yarn Application程序失败后重试启动JobManager,实际上就是通过配置Yarn重试次数来实现高可用。JobManager重试过程需要借助zookeeper 协调JobManger失败后的切换,进而进行恢复对应的任务,同时需要HDFS存储每个Flink任务的执行流程数据。

1、Yarn HA配置

Yarn HA配置步骤如下:

Hadoop中所有节点的yarn-site.xml

在所有Hadoop节点上配置$HADOOP_HOME/etc/hadoop/yarn-site.xml文件,配置应用程序失败后最大尝试次数,以下该参数默认值为2,不配置也可以:

#设置提交应用程序的最大尝试次数,建议不低于4,这里重试的是ApplicationMaster  yarn.resourcemanager.am.max-attempts  4
配置flink-conf.yaml文件

只需要在向Yarn提交任务的客户端节点上配置Flink的flink-conf.yaml文件。未来我们在node5节点上来基于Yarn 各种模式提交任务,所以这里我们在node5节点上配置$FLINK_HOME/conf/flink-conf.yaml文件,配置内容如下:

#要启用高可用,选主协调者为zookeeper,zk存储一些ck记录及选举信息high-availability: zookeeper#storageDir存储恢复JobManager失败所需的所有元数据,如:job dataflow信息high-availability.storageDir: hdfs://mycluster/flink-yarn-ha/#分布式协调器zookeeper集群high-availability.zookeeper.quorum: node3:2181,node4:2181,node5:2181#根ZooKeeper节点,所有集群节点都位于根节点之下。high-availability.zookeeper.path.root: /flink-yarn-ha#给当前集群指定cluster-id,集群所有需要的协调数据都放在该节点下。high-availability.cluster-id: /yarn-cluster#该参数同yarn-site.xml中yarn.resourcemanager.am.max-attempts参数,指向yarn提交一个application重试的次数,也可以不设置,非高可用默认为1,高可用默认为2,建议不大于yarn.resourcemanager.am.max-attempts参数,否则会被yarn.resourcemanager.am.max-attempts替换掉。yarn.application-attempts: 4

2、启动测试

启动Zookeeper和HDFS
#在 node3、node4、node5节点启动zookeeper[root@node3 ~]#  zkServer.sh start[root@node4 ~]#  zkServer.sh start[root@node5 ~]#  zkServer.sh start#在node1启动HDFS集群[root@node1 ~]# start-all.sh
node5节点向Yarn提交任务

这里以在node5节点上以Yarn Application模式提交任务为例,命令如下:

#在node5节点启动 socket服务[root@node5 ~]# nc -lk 9999#以Application模式提交任务,命令如下[root@node5 ~]# cd /software/flink-1.16.0/bin/[root@node5 bin]# ./flink run-application -t yarn-application -c com.mashibing.flinkjava.code.chapter3.SocketWordCount /root/FlinkJavaCode-1.0-SNAPSHOT-jar-with-dependencies.jar

以上任务提交后可以在Yarn WebUI中看到对应的Application信息:

测试Flink Yarn HA

在Yarn WebUI中进入到FlinkWebUi页面,查看该JobManager启动所在的节点:

进入JobManager所在节点,并kill对应的JobManager进程,模拟JobManager进程意外中断,在Yarn WebUI中可以看到对应的Yarn ApplicationID重试执行,点击该ApplicatID 可以看到该任务重试信息:

通过以上测试,Flink Yarn HA 生效。

大数据Flink进阶(十六):Flink HA搭建配置 当前快看

2023-04-10 10:28:27

苏州旅游打卡新标配!竹筒奶茶走红,有店家日销超1000杯 今热点

2023-04-10 10:01:53

环球热讯:水运工程全面加快建设

2023-04-10 08:49:46

我市召开意识形态“风险提醒人”座谈会

2023-04-10 07:30:08

世界即时看!还记得自己的第一次都是做了些什么吗?

2023-04-10 05:00:14

中国汽车研发软件产业创新联盟正式成立

2023-04-09 23:12:33

2023年上海市民文化节合唱大赛报名时间+报名方式

2023-04-09 20:57:49

桃树花期为什么不能缺硼肥?

2023-04-09 19:10:03

陕西省企业退休人员养老金调整方案2022 今年上半年养老金有多少?

2023-04-09 17:21:27

dnf宠物亚米捡东西快吗 dnf亚米宠物

2023-04-09 16:03:11

天天观速讯丨未来的多功能书包画(未来多功能书包儿童画)

2023-04-09 14:07:00

招敬常|世界新要闻

2023-04-09 11:56:24

【环球热闻】央视女主持人调整,龙洋调岗有望成“一姐”,95后小花被重用

2023-04-09 10:07:07

热门看点:高龄能不能转行做程序员?

2023-04-09 08:42:01

15岁女生长痘痘怎么消_15岁女生-微头条

2023-04-09 06:04:56

穆科科谈进球:我看到对手的意图,出现在合适位置是射手的直觉

2023-04-09 01:51:34

世界头条:乌鲁木齐经开区两河片区建投新兴产业园7月底交付使用

2023-04-08 21:39:22

班凯罗:选秀当天我有9成把握会去火箭 当选状元是人生最棒的时刻

2023-04-08 19:36:00

岚图3月交付量达到3027辆 同比上涨116%

2023-04-08 17:35:45

比斯利:今晚我终于投进球了,希望手感能延续到季后赛

2023-04-08 15:50:50

【世界播资讯】【武战道之兽族战王】第二章

2023-04-08 14:17:35

天天新资讯:“悦读”走进生活方式,第23家灯塔书房入驻“生活盒子”!

2023-04-08 12:12:27

30吨黑芝麻糊“糊”在了路上……

2023-04-08 11:00:24

每日一冷 NO.3661_全球观点

2023-04-08 09:24:46

每日关注!江苏推动新时代农村党群服务中心创意设计落地

2023-04-08 08:01:43

每日报道:4月7日基金净值:广发中证全指信息技术ETF最新净值0.6861,涨0.69%

2023-04-08 05:38:42

环球看热讯:山花子·无题

2023-04-08 01:03:00

食管炎最快的恢复方法_食道癌能治好吗-全球视讯

2023-04-07 21:52:19

二十届中央第一轮巡视开始进驻 首批14家被巡视单位信访受理方式公布 每日时讯

2023-04-07 20:31:13

为什么qq老掉线/QQ自动掉线原因与解决方法_当前简讯

2023-04-07 19:07:50

今日快看!上线央视八套、腾讯视频!电视剧《欢乐颂4》今晚开播:会员提前看

2023-04-07 17:59:32

环球今热点:公子呀布满台霜_公子呀布满苔霜是什么歌

2023-04-07 17:16:48

环球速读:超美健身成熟少女屯德费科特性感照

2023-04-07 14:22:39

今热点:全新雷凌硬件大换代,增加17项配置,高性价比冲击对手

2023-04-07 13:10:47

预告| 奥比中光创新技术强势加持,助力创想三维新品4月9日全球首发_世界要闻

2023-04-07 12:06:05

每日头条!《亲爱的》原型孙卓被拐案 4 月 7 日开庭,孙海洋索赔 580 万元

2023-04-07 11:18:39

今天中午12点,对话古美路街道党工委书记张伟麟

2023-04-07 10:37:35

环球热文:江华:县乡联合开展森林防灭火应急演练 筑牢森林安全防线

2023-04-07 09:42:57

百事通!4月7日生意社轻质纯碱基准价为2730.00元/吨

2023-04-07 08:47:42

梦想家油耗10L/没电的理想L8加速8s 寻找中国混动王之混动全能王-家庭组横评 焦点快播

2023-04-07 07:57:50

宋人笔记中的隋唐五代史料

2023-04-07 05:48:44

寻回被拐14年的儿子之后:“人贩子”将出庭受审,孙海洋提起580万民事赔偿

2023-04-07 01:54:44

央媒观豫丨留乡人·归乡人·新乡人:河南大别山区文旅蝶变的青春密码-世界视点

2023-04-06 22:06:24

银行救助遭遇“储蓄搬家”,钱从美联储来,又回美联储去?——系列报告详解银行存款流失危机之三

2023-04-06 21:07:40

湖北崇阳职校:让青年教师在职业发展中实现更大自我价值 世界新资讯

2023-04-06 19:55:20

动画片灰太狼简笔画的画法

2023-04-06 18:32:36

全球滚动:2023-04-06 | 苹果 iOS 无内购限免应用 1 款推荐:我的待办

2023-04-06 17:49:36

环球聚焦:4月6日金巧福珠宝黄金588元/克 铂金419元/克

2023-04-06 16:56:59

乘联会:初步统计3月新能源车市场零售54.9万辆 同比增长5% 焦点关注

2023-04-06 15:50:11

招商轮船:没看到禁售的消息,貌似只看到美国参议院有个别反华议员各种叫嚣

2023-04-06 15:11:46

汇宇制药:2022年归母净利同比降44.15% 集采产品注射用培美曲塞二钠单品收入下降-全球快消息

2023-04-06 14:13:27

《奇妙之城》第二季抵达澳门,何超莲薛凯琪开启快乐约会模式|天天速看料

2023-04-06 12:58:49

饿疯的球潮虫成就只要部落能做_饿疯的球潮虫成就

2023-04-06 11:57:54

越是聪明的跑者,越懂得“认怂”-当前通讯

2023-04-06 10:58:39

天天资讯:市委党校开展家风廉政教育现场教学

2023-04-06 10:13:31

新洲法院引进公证机构 查询线索破解“执行难” 全球热门

2023-04-06 09:40:47

环球速递!汇金通:截至2023年3月31日,公司股东总数为15792户

2023-04-06 08:42:57

超级漂移赛车好玩吗 超级漂移赛车玩法简介|环球观焦点

2023-04-06 07:24:14

当前头条:报销生育险男女双方是否都能报销?报销生育险主要流程

2023-04-06 05:44:18

孔雀蓝是什么颜色的图片(孔雀蓝是什么颜色)_世界微速讯

2023-04-06 00:47:47

守好人民“看病钱” 厦门去年追回损失1500余万元

2023-04-05 21:42:41

4月05日19时贵州遵义疫情防控消息 贵州遵义新增确诊病例数|当前速看

2023-04-05 19:48:48

一男子下载“红杏”APP“约炮”被骗56万 世界今亮点

2023-04-05 17:58:22

德转显示前江苏队后卫周云复出,加盟江苏业余球队南房东晟|当前速讯

2023-04-05 16:38:48

足坛密集反腐,中超新赛季何时开赛?最新消息|天天快资讯

2023-04-05 15:02:05

观后感600字 关于校园暴力的观后感600字|天天快播报

2023-04-05 13:10:11

全国多地清朗过清明是什么情况 全国多地清朗过清明具体来龙去脉是怎么样|通讯

2023-04-05 11:49:07

伊戈尔:公司会根据客户需求和业务开拓的情况提前布局或者调整相应的产能

2023-04-05 10:15:45

成交额榜|4月4日宁德时代概念相关企业TOP20排行榜!

2023-04-05 08:55:20

中恒集团:4月4日融券卖出9.78万股,融资融券余额4.34亿元

2023-04-05 07:22:34

万盛股份(603010):4月4日北向资金减持2.05万股 环球微资讯

2023-04-05 05:42:18

【天天快播报】足彩14场奖金总额-足彩14场奖金怎么算

2023-04-05 01:41:24

“不买AI就是等死” 人工智能主题基金又行了!此前曾因“货不对板”被质疑-世界快讯

2023-04-04 22:00:02

山西:宜居宜业和美乡村建设向纵深推进

2023-04-04 20:59:50

四省区联动开展专项招聘 推动更多人才留在东北

2023-04-04 19:46:31

鹤壁经济技术开发区:持续抓好“门前四包” 提升城市管理效能 全球视点

2023-04-04 18:31:00

豪掷174亿元,欧莱雅抢下Aesop 环球短讯

2023-04-04 17:36:16

晶格企业邮箱登录页面_晶格企业邮箱登录_世界速读

2023-04-04 17:01:54

环球速递!新能源板块持续调整,“宁王”连续下挫,电池50ETF(159796)大跌2.69%,下跌区间溢价高企

2023-04-04 16:04:23

视点!如何破解大数据杀熟?

2023-04-04 15:12:31

「高质量发展看中国」广西积极推进县域商业体系建设 促进农村消费和农民增收_全球观速讯

2023-04-04 14:20:44

雷斧堡垒宝箱(雷斧堡垒)-全球报资讯

2023-04-04 13:02:30

巴布亚新几内亚7.1级地震造成至少4人死亡;

2023-04-04 12:03:54

石楼县部门联合开展关爱 妇女儿童主题安全宣传教育活动

2023-04-04 11:24:03

天津城投集团20.8亿公司债即将到期兑付及摘牌 利率5.50% 全球资讯

2023-04-04 10:44:00

澳大利亚一轻型飞机坠毁 2人死亡_视焦点讯

2023-04-04 09:57:18

2023,平静的金三银四,回不去的大厂 当前速递

2023-04-04 09:02:45

环球热资讯!青达环保:4月3日获融资买入202.89万元,占当日流入资金比例15.16%

2023-04-04 08:27:33

美国前总统特朗普已抵达纽约曼哈顿|实时

2023-04-04 07:11:52

SPARK乐驰0.8用车一年优缺点及油耗详细总结

2023-04-04 05:08:36

3月27日至29日,秦州区太京镇在湾_焦点短讯

2023-04-04 01:06:47

当前滚动:申卫星:未来数据流通需要“三权分置”

2023-04-03 22:26:41

全球微动态丨恒大恒驰新能源汽车上海公司成为被执行人,被执行超810万元

2023-04-03 21:15:44

天天快看点丨永和股份:2022年净利同比增8.03% 拟10股派2.5元转增4股

2023-04-03 19:50:36

每日快报!窝囊女婿含泪签离婚协议_被迫签完离婚协议窝囊女婿被私人飞机接走岳父岳母傻眼

2023-04-03 18:49:23

幻的礼物

2023-04-03 18:24:07

全球球精选!无任何定语!真我GT Neo5 SE预售销量破纪录:1999元真香

2023-04-03 18:09:23

粤海置地:2023年将择机拿地|热头条

2023-04-03 17:08:32

【新视野】出生人口超100万 广东连续五年成第一生育大省

2023-04-03 16:24:49

【BT金融分析师】露露柠檬四季度销售情况乐观,分析师称中国经济复苏是主要原因 世界即时看

2023-04-03 14:51:07