天天看热讯:大数据Flink进阶(十六):Flink HA搭建配置
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搭建配置
- 【独家焦点】警惕瞄准大学生的“培训贷”陷阱
- 今天最兴奋的事儿是啥?波波维奇:48分钟后本赛季就结束了|世界聚看点
- 【天天聚看点】G1上海虐江苏!两帅融洽沟通,布莱克尼无奈,大王焦点,刘铮淡定
- 环球通讯!方正县气象台发布霾黄色预警【III级/较重】
- 关于中国留学生在泰遇害的情况通报
- 039期薛山双色球预测奖号:红球杀码推荐
- 王驾麟_关于王驾麟介绍-焦点速看
- 造梦西游3袁洪易爆点在哪里_造梦西游3袁洪易爆点_环球观察
- “地铁校尺”张圆圆获评湖北“最美交通运输人” 全球今头条
- 一“职业应聘者”团伙落网,有人底薪两三万还获分股份
- 当前快讯:海棠依旧·十【下】完结(表哥乾*表弟坤)忘羡双洁
- 军事科学院研究员赵小卓:此次环台岛战备警巡展现五大特点,航母山东舰参演 天天微速讯
- 澳洲倒闭开发商或涉及违规操作,数百名购房者定金恐“打水漂”-全球热点评
- 【天天热闻】最短5分钟可完成申请!深圳建行新金融助力汽车消费
- 环球消息!港中文硕士裸辞回武汉开面馆:之前月薪16k到25k,现在收盘子当收银员不丢人,学历带来的是思维方式
- 济宁高新区交通运输管理局开展路段环保检查 筑牢安全环保底线
- 【世界时快讯】比亚迪新秦PLUS 4月7日上市,用设计再次征服用户
- 仅1999元!铁威马F4-423(4G)四盘位NAS开启预售:双2.5G网口_天天微速讯
- 【热闻】东部战区将组织环台岛战备警巡和“联合利剑”演习
- 如何识别海蓝宝石 海蓝宝石的鉴别方法
- 环球快资讯:卡萨诺炮轰穆里尼奥:没有职业道德!不配执教皇马,也不喜欢C罗
- 学校安全月工作总结范文_安全月工作总结范文 当前要闻
- 全球简讯:枭逢鸠为材料800字议论文_枭逢鸠
- 本田召回255496辆问题车辆 涵盖雅阁、INSPIRE等车型
- 世界看热讯:演员海清:我这辈子最正确的决定,就是在30岁为普通丈夫生儿子
- 通讯!今日辟谣(2023年4月7日)
- 春风吹暖春经济 | 火爆!线下餐饮市场复苏明显_焦点热讯
- 天天快看:《燃烧的巴黎圣母院》今日上映 导演让-雅克·阿诺分享影片创作初衷
- 【环球热闻】登革病毒通过蚊子唾液削弱人体免疫系统
- 承德露露:公司预计2022年4月27日披露2023年第一季度报告|天天看点
- 被撕掉“遮羞布”的日系三强!日产和丰田真不是一个级别的|热头条
- 西南证券首予新大正“持有”评级,目标价27.17元 环球快看点
- 太原机场,航班加密!迎接旅游热度提升!
- 年例
- 【环球聚看点】审判特朗普,这场大戏将如何发展?
- 世界微动态丨吃香椿正当时 怎么吃有讲究
- 北京丰台站交通枢纽南枢纽“钻”出地面-每日热门
- 深创投在高新区落地投资 全球微速讯
- 世界今日讯!嘉陵江大桥_关于嘉陵江大桥的介绍
- 丹东东港警方打好“四手组合拳”,守护百姓“钱袋子”安全 世界新消息
- 世界百事通!2016年的g20峰会是在中国哪个城市举行_2016年g20峰会在哪个城市
- 广州市增城区司法局原二级调研员郑永强接受监察调查
- 热门看点:张家界天门山,四个年轻人,从1430米悬崖上跳下,遗书让人很震惊
- 《海岛大亨6》第20版更新——海岛之火永恒不灭
- 快捷键怎么设置vivo_快捷键怎么设置
- 天天简讯:微软活跃用户稳超索尼:虽然装机量有很大的差距
- FXDD:欧元、英镑和日元最新走势分析(2023年4月6日) 世界热文
- 天天速读:航行警告!珠江口海域进行射击训练
- 业绩同比增长,不良额率双降,宁波银行这份成绩单不错! 全球要闻
- 开发区考核对标沪苏浙-当前热文
- 10.28万起 新款比亚迪e2上市:全系标配热泵空调跑更远
- 全球速看:摩托罗拉moto razr+2023通过认证:3640mAh电池、33W快充
- 环球快资讯:转账需要开户行信息吗?银行卡没有开户行可以转账吗?
- 罗源县气象台发布雷电黄色预警【Ⅲ级/较重】 天天微资讯
- “七星大厨”林依轮做客郎朗家,看了他们的饭菜后:浪费厨子|世界报道
- 春暖花俏市场旺|每日精选
- 总裁的小娇妻第二季_总裁的小娇妻-全球聚看点
- 碳酸锂跌破25万元/吨,江西宜春部分云母提锂企业已停产以挺价4日,作为行业风向标的国内电池级碳酸锂价格跌至22.4万元/吨,较去年11月末58万元/吨的高位已经跌去逾60%
- (买2赠1)江南美酒荷花酿,苏东坡也会爱上这一杯-每日报道
- 于2023年山东威海中考招生录取实施办法
- 世界微资讯!水浒传谁的武功最高排名_水浒传108将武功排名
- 山东省2024年普通高等学校招生舞蹈类专业统一考试说明-焦点热讯
- 每日简讯:好评中国·走进湖南丨“群英断是非”工作法:践行全过程人民民主的“群英会”
- 日本动画票房榜・23冬 灌篮高手127亿円 世界观热点
- 汉达是国米历史上第二位出战达450场的门将,仅次于曾加的473场|热资讯
- 梨花风起正清明!清明全国春风地图出炉,看哪里风最盛
- 每日热闻!美媒:特朗普前往法院途中发文 “太超现实了,他们要逮捕我”
- 贵绳股份(600992):4月4日北向资金减持74.13万股
- 【世界新视野】英语4级词汇进阶_关于英语4级词汇进阶的简介
- 魔兽世界达隆郡的战斗需要多少人_魔兽世界达隆郡的战斗
- 反转?爆料张继科丑闻的李微敖遭网友攻击:你为什么出卖景甜?
- 晓鸣股份(300967.SZ):厦门辰途、辰途第一产业基金、谢诺投资累计减持股份达1.59%
- 环球今日报丨引入驻镇规划师,余杭百丈乡村自建房颜值大涨
- 嵘泰股份:我公司上市公司同行有旭升集团、爱柯迪、文灿股份等
- 先进数通:公司未从事机器学习基础技术研发|环球讯息
- 环球快播:“法律诊所”打通法治惠民“最后一公里”
- 杭州公交线路查询大全111路_杭州公交线路查询大全
- 世界视讯!融资丨「镓仁半导体」完成数千万天使轮融资,蓝驰创投领投
- 理想L7在俄罗斯启动销售:46.25万起 这价格怎么样?
- 英特尔在微型PC软件实用程序中修补严重的安全
- 792舰 792舰艇 环球微速讯
- 南大光电聘任公司董事会秘书
- 硬核快报 | 全新名爵MG7,20万内最硬核轿车?
- 特朗普被提审前夕 拜登表态具体详细内容是什么-环球微速讯
- 保利发展(600048):与关联合伙企业及相关主体开展关联交易事项的公告 环球微速讯
- 广州恒大踢完亚冠小组赛之后还在等待神户胜利船和水原三星的比赛结果 最新快讯
- 全球讯息:硅片切割需求旺盛 高测股份净利增3.5倍
- 鸡蛋干过期了会怎样?
- 世界播报:巴丹工程砖
- 【天天聚看点】俄战地记者被炸身亡,嫌疑人被捕后:“我被陷害了!我被利用了!”
- 快播:奈雪的茶披露2022年业绩经调整净利润亏损4.6亿
- 天天微头条丨二手房市场供需两旺 超6成经纪人看涨4月成交量
- 中指院:TOP100房企1-3月销售额增速转正,3月单月销售额同比增长 世界新要闻
- 哈萨克斯坦孔院举办中文比赛_世界新视野
- 广州极兔网络科技有限公司涉嫌诈骗,没有人受理 世界看点
- 专访ABB电气中国副总裁杨嵘:可靠性是建筑行业数字化的核心环节-环球报道
- 宝马全新一代X3曝光!尺寸大幅提升/换7系同款大屏 焦点速看
- 焦点关注:光伏巡检机器人、智能吊舱等一批工业硬科技在京亮相
- 【速看料】A股石油板块掀涨潮,机构:产油国减产是对油价的再次托底
X 关闭
行业规章
X 关闭