天天新资讯:大数据Flink进阶(十):Flink集群部署
Flink的安装和部署主要分为本地(单机)模式和集群模式,其中本地模式只需直接解压就可以使用,不用修改任何参数,一般在做一些简单测试的时候使用。本地模式在这里不再赘述。集群部署模式主要包含Standalone、Hadoop Yarn 、Kubernetes等,Flink可以借助以上资源管理器来实现分布式计算,目前企业使用最多的是Flink 基于Hadoop Yarn资源管理器模式,下面我们重点讲解Flink 基于Standalone集群、Yarn资源管理器以及Kubernetes集群部署方式。
一、Standalone集群部署
1、节点划分
通过Flink运行时架构小结,我们知道Flink集群是由一个JobManager(Master)节点和多个TaskManager(Worker)节点构成,并且有对应提交任务的客户端。这里部署Standalone集群基于Linux Centos7.6版本,选择4台节点进行部署Flink,其中3台节点Standalone集群节点、一台节点是提交Flink任务的客户端,各个节点需要满足以下特点:
(资料图片)
各节点安装java8版本及以上jdk(这里选择jdk8)。各个节点之间需要两两免密。4台节点角色划分如下:
节点IP | 节点名称 | Flink服务 |
---|---|---|
192.168.179.4 | node1 | JobManager,TaskManager |
192.168.179.5 | node2 | TaskManager |
192.168.179.6 | node3 | TaskManager |
192.168.179.7 | node4 | client |
2、standalone集群部署
我们可以从Flink的官网下载Flink最新的安装包,这里选择Flink1.16.0版本,Flink安装包下载地址:https://flink.apache.org/downloads.html#apache-flink-1160。Standalone集群部署步骤如下:
上传压缩包解压
将Flink的安装包上传到node1节点/software下并解压:
[root@node1 software]# tar -zxvf ./flink-1.16.0-bin-scala_2.12.tgz
配置Master节点
配置Master节点就是配置JobManager节点,在$FLINK_HOME/conf/masters文件中配置jobManager节点如下:
#vim $FLINK_HOME/conf/mastersnode1:8081
配置Worker节点
配置Worker节点就是配置TaskManager节点,在$FLINK_HOME/conf/workers文件中配置taskManager节点如下:
#vim $FLINK_HOME/conf/workersnode1node2node3
配置flink-conf.yaml 文件
在node1节点上进入到FLINK_HOME/conf目录下,配置flink−conf.yaml文件(vimFLINK_HOME/conf/flink-conf.yaml配置如下内容),内容如下:
# JobManager地址jobmanager.rpc.address: node1# JobManager地址绑定设置jobmanager.bind-host: 0.0.0.0# TaskManager地址绑定设置taskmanager.bind-host: 0.0.0.0# TaskManager地址(不同TaskManager节点host配置对应的host)taskmanager.host: node1# 设置每个TaskManager 的slot个数taskmanager.numberOfTaskSlots: 3# WEB UI 节点(只需JobManager节点设置,TaskManager节点设置了也无所谓)rest.address: node1# WEB UI节点绑定设置(只需JobManster节点设置)rest.bind-address: 0.0.0.0
注意:以上设置的0.0.0.0代表监听当前节点每一个可用的网络接口,0.0.0.0不再是一个真正意义上的ip地址,而表示一个集合,监听0.0.0.0的端口相当于是可以监听本机中的所有ip端口。以上配置的0.0.0.0 表示想要让外部访问需要设置具体ip,或者直接设置为"0.0.0.0"。
分发安装包并配置node2 、node3 节点flink-conf.yaml 文件
#分发到node2、node3节点上[root@node1 ~]# scp -r /software/flink-1.16.0 node2:/software/[root@node1 ~]# scp -r /software/flink-1.16.0 node3:/software/#修改node2、node3 节点flink-conf.yaml文件中的TaskManager【node2节点】 taskmanager.host: node2【node3节点】 taskmanager.host: node3#注意,这里发送到node4,node4只是客户端[root@node1 ~]# scp -r /software/flink-1.16.0 node4:/software/
启动Flink 集群
#在node1节点中,启动Flink集群[root@node1 ~]# cd /software/flink-1.16.0/bin/[root@node1 bin]# ./start-cluster.sh
访问Flink WebUI
https://node1:8081,进入页面如下:
3、任务提交测试
Standalone集群搭建完成后,可以将Flink任务提交到Flink Standalone集群中运行。有两种方式提交Flink任务,一种是在WebUI界面上提交Flink任务,一种方式是通过命令行方式。
这里编写读取Socket数据进行实时WordCount统计Flink任务提交到Flink集群中运行,这里以Flink Java代码为例来实现,代码如下:
/** * 读取Socket数据进行实时WordCount统计 */public class SocketWordCount { public static void main(String[] args) throws Exception { //1.准备环境 StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); //2.读取Socket数据 DataStreamSource ds = env.socketTextStream("node5", 9999); //3.准备K,V格式数据 SingleOutputStreamOperator> tupleDS = ds.flatMap((String line, Collector> out) -> { String[] words = line.split(","); for (String word : words) { out.collect(Tuple2.of(word, 1)); } }).returns(Types.TUPLE(Types.STRING, Types.INT)); //4.聚合打印结果 tupleDS.keyBy(tp -> tp.f0).sum(1).print(); //5.execute触发执行 env.execute(); }}
以上代码编写完成后,在对应的项目Maven pom 文件中加入以下plugin:
maven-assembly-plugin 2.6 jar-with-dependencies xx.xx.xx make-assembly package assembly
然后使用Maven assembly 插件对项目进行打包,得到"FlinkJavaCode-1.0-SNAPSHOT-jar-with-dependencies.jar"完整jar包。
此外,代码中读取的是node5节点scoket 9999端口数据,需要在node5节点上安装nc组件:
[root@node5 ~]# yum -y install nc
命令行提交Flink任务在node1 上启动Flink Standalone 集群
[root@node1 bin]# cd /software/flink-1.16.0/bin/[root@node1 bin]# ./start-cluster.sh
在node5 节点上启动nc socket服务
[root@node5 ~]# nc -lk 9999
将打好的包提交到Flink 客户端node4 节点/root 目录下并提交任务
[root@node4 ~]# cd /software/flink-1.16.0/bin/#向Flink集群中提交任务[root@node4 bin]# ./flink run -m node1:8081 -c com.mashibing.flinkjava.code.lesson03.SocketWordCount /root/FlinkJavaCode-1.0-SNAPSHOT-jar-with-dependencies.jar
进入Flink WebUI 界面查看任务和结果
#向node5 socket 9999 端口写入以下数据hello,a hello,bhello,chello,a
WebUI查看对应任务和结果
登录Flink WebUI http://node1:8081查看对应任务执行情况。
WebUI查看执行结果:
在WebUI中点击对应的任务Job,进入如下页面点击"Cancel Job"取消任务执行:
Web界面提交 Flink任务向Flink集群提交任务还可以通过WebUI方式提交。点击上传jar包,进行参数配置,并提交任务。
提交任务之后,可以通过WebUI页面查看提交任务,输入数据之后可以在对应的TaskManager节点上看到相应结果。
二、Flink On Yarn
Flink可以基于Yarn来运行任务,Yarn作为资源提供方,可以根据Flink任务资源需求动态的启动TaskManager来提供资源。Flink基于Yarn提交任务通常叫做Flink On Yarn,Yarn资源调度框架运行需要有Hadoop集群,Hadoop版本最低是2.8.5。
1、Flink不同版本与Hadoop整合
Flink基于Yarn提交任务时,需要Flink与Hadoop进行整合。Flink1.8版本之前,Flink与Hadoop整合是通过Flink官方提供的基于对应hadoop版本编译的安装包来实现,例如:flink-1.7.2-bin-hadoop24-scala_2.11.tgz,在Flink1.8版本后不再支持基于不同Hadoop版本的编译安装包,Flink与Hadoop进行整合时,需要在官网中下载对应的Hadoop版本的"flink-shaded-hadoop-2-uber-x.x.x-x.x.jar"jar包,然后后上传到提交Flink任务的客户端对应的$FLINK_HOME/lib中完成Flink与Hadoop的整合。
在Flink1.11版本之后不再提供任何更新的flink-shaded-hadoop-x jars,Flink与Hadoop整合统一使用基于Hadoop2.8.5编译的Flink安装包,支持与Hadoop2.8.5及以上Hadoop版本(包括Hadoop3.x)整合。在Flink1.11版本后与Hadoop整合时还需要配置HADOOP_CLASSPATH环境变量来完成对Hadoop的支持。
2、Flink on Yarn 配置及环境准备
Flink 基于Yarn提交任务,向Yarn集群中提交Flink任务的客户端需要满足以下两点
客户端安装了Hadoop2.8.5+版本的hadoop。客户端配置了HADOOP_CLASSPATH环境变量。这里选择node5节点作为提交Flink的客户端,该节点已经安装了Hadoop3.3.4版本,然后在该节点中配置profile文件,加入以下环境变量:
# vim /etc/profile,加入以下配置export HADOOP_CLASSPATH=`hadoop classpath`#source /etc/profile 使环境变量生效[root@node5 ~]# source /etc/profile
然后将Flink的安装包上传到node5节点/software下并解压:
[root@node5 software]# tar -zxvf ./flink-1.16.0-bin-scala_2.12.tgz
3、任务提交测试
基于Yarn运行Flink任务只能通过命令行方式进行任务提交,Flink任务基于Yarn运行时有几种任务提交部署模式(后续章节会进行介绍),下面以Application模式来提交任务。步骤如下:
启动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任务对应的jar 包上传到node5 节点这里的Flink任务还是以读取Socket数据做实时WordCount任务为例,将打好的"FlinkJavaCode-1.0-SNAPSHOT-jar-with-dependencies.jar"jar包上传到node5节点的/root/目录下。
在node5 节点执行如下命令运行Flink 作业[root@node5 ~]# cd /software/flink-1.16.0/bin/# 提交Flink任务[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
查看WebUI及运行结果Flink任务Application模式提交后,浏览器输入https://node1:8088登录Yarn WebUI,找到提交的任务,点击对应的Tracking UI"ApplicationMaster"进入到Flink WEBUI任务页面。
向node5 scoket 9999端口输入以下数据并在对应的WebUI中查看结果:
#向node5 socket 9999 端口写入以下数据hello,a hello,bhello,chello,a
在WebUI中找到对应的Flink TaskManager节点 Stdout输出,结果如下:
标签:
推荐文章
- 天天新资讯:大数据Flink进阶(十):Flink集群部署
- 当前最新:“YY琶醍之夜”揭幕 埃安科技尖叫日A爆全场
- 环球热点!金华市武义县卫生健康局2023年校园招聘25人公告(第四批)
- 【全球新视野】不锈钢带磁和不带磁的区别 不锈钢盆带磁和不带磁哪个好
- 被张继科波及,孔令辉被查尘埃落定,名记点名,涉及256万
- 当前要闻:准格尔旗气象台发布大风蓝色预警【IV级/一般】
- 世界新资讯:《大侠立志传》飞瀑潭心魔怎么打?飞瀑潭心魔打法技巧
- 单眼皮想要拥有氛围感需要满足的条件很多,但这四点很关键_全球消息
- 环球快讯:TA:引援不力+欧冠出局 大巴黎与姆巴佩渐行渐远
- thu什么意思_thus
- 环球讯息:9战7胜信心足!克莱看好健康勇士卫冕:没球队能在季后赛淘汰我们
- 法比奥:对泰山队年轻球员还不熟悉,费南多状态未达比赛要求|看热讯
- 全球最新:previously on_previously
- 萨里县_关于萨里县的简介
- 汤道生谈下一代互联网三大趋势:AI驱动+全真互联网+深入产业_世界独家
- 国家外汇管理局:3月末我国外汇储备规模增至31839亿美元-当前焦点
- 环球微动态丨周口市文昌办事处召开作风大转变、能力大提升活动专题推进会
- 空客将在天津建设第二条生产线
- 95周岁庆生,中国美院宣布成立书法学院|环球热议
- 郭德纲晒“京剧老人”遗物翻车,究竟是怎么一回事?
- 人们通常会借助于哪种昆虫对湿地水质进行监测_该种动物的有什么特点
- 在岸人民币兑美元较周四夜盘收盘涨51点
- 迪马尔科:意甲3连败让人愤怒,国米必须拿到下赛季欧冠参赛资格 环球微资讯
- 喜讯!登封市人民医院药学工作荣获2022年度郑州市卫健委多项荣誉
- 环球新消息丨奋达科技:决定开展股东回馈活动
- 梳理丰县八孩案:董志民受审画面公布 具体详细内容是什么 焦点简讯
- 信阳潢川公安:“于琼琼工作室”送“安全”进校园 即时焦点
- 郑州野生动物园何时开建,选址定了吗|郑州观察
- 贵州成立7家实验室促进文旅融合发展
- 法院对于非法持有毒品罪的最新量刑标准是什么_焦点关注
- 热评两岸丨走进这片“熟悉又陌生”的土地 台湾青年这样说
- 成都锦欣中医医院健康证体检办理指南
- 每日速看!内蒙古自治区商务厅和内蒙古银行签署全面战略合作协议
- 河北:科技创新添活力 赋能发展增动力
- 春天的榜首杯奶茶是什么梗?金价再创一年新高,有人晒出新买的一整杯黄金首饰 详细情况
- 生活需要微笑_高考满分作文800字 眼界无穷世界宽_高考满分|世界报资讯
- 推进体教融合 增强综合素质(新闻发布厅)
- 【快播报】性取向是天生的吗 性取向是由什么决定的
- 谭松韵否认隐婚传闻,工作室霸气回应:假到离谱!热巴无辜躺枪 当前通讯
- 飘组词100个_飘组词
- 信息:武汉三镇阵容亚冠比赛中会吃力 但在中超拿冠军卫冕还是可以
- 美国农业部:截至3月30日当周美国大豆出口净销售数据
- 爱婴室:2022年净利同比增16.97% 拟10派3元_环球观察
- 英雄之光|他曾说会骑马归来,但回来的只有一张三等功喜报……
- 三联虹普(300384)4月6日主力资金净卖出744.25万元
- 微动态丨读书郎荣获新京报2022中国智慧教育品牌评选活动“年度科技创新品牌”奖项!
- 消息称徕卡本月将发布三款新品,最快会在本周推出新款镜头-世界速读
- 华侨城集团15亿元中期票据将付息 利率3.42%
- 南京:住房公积金提取实现跨行实时支付
- “特种兵式”旅游火了!一天打卡8个景点,只睡3小时-焦点快报
- 绝了,巴黎展开15人大清洗!梅内危险,仅7人幸免,皆为姆总亲信_环球精选
- 扩大消费应提升金融服务质量
- 观速讯丨炒股口诀早上大跌可加仓 炒股口诀 早上大跌买
- 乡村生活综艺:打造现代人的“武陵源”
X 关闭
最新资讯
- 2023年第13周(3月27日—4月2日)生猪及猪肉价格环比下降
- 苏青携手,山海情深 ——江苏省对口支援海南州工作综述|天天速讯
- 保护大自然的资料_关于大自然的资料 热闻
- 马洛塔:囧叔遇到困难总能找到应对措施 小因扎吉需找到解决方案
- 今亮点!幼儿小班感恩礼物
- 世界艾滋病日是每年的何月何日?_世界艾滋病日是每年的何月何日_-世界消息
- 踏青游火热 北京市旅游售票类消费额同比增长27.2%
- 今日清明
- 天天视点!闰土股份:2022年度净利润约6.45亿元 同比下降22.79%
- 又一款在美获批临床 石药集团布局抗体偶联药物“小有收获”
- 秦岚不给少女留活路!43岁年龄23岁身材,赤脚穿白裙美得像画中人
- 这届老年人,扎堆旅居养老
- 百书库txt下载_百书库|当前视点
- vue面试题八股文简答大全 让你更加轻松的回答面试官的vue面试题|世界快报
- 环球热头条丨“强化地质合作支撑区域发展”院士专家座谈会在太原举行
- 海谱润斯:拟冲刺创业板IPO上市 预计投入募资5.7亿元 近九成收入来自京东方
- 环球今日讯!风平浪静打一城市名答案_风平浪静打一城市名
- 经常吃生蒜好吗 经常吃生蒜对身体有好处吗|环球看点
- 环球新动态:三六零实控人周鸿祎离婚 拟将6.25%公司股份分割至胡欢名下
- 夏河县气象台发布道路结冰黄色预警信号|天天播资讯
- 南极海底1千米左右,发现巨型帝王蟹,体型大到人类无法想象
- 佛山居住证地址变更办理材料 热门看点
- 环球速讯:西甲瓦伦西亚1-1巴列卡诺 小克鲁伊维特点球绝平对手
- 河北省邯郸市积极推进“一业一查”部门联合双随机监管新模式_快讯
- 环球百事通!怎样鉴别香肠质量的优劣_如何鉴别香肠质量的好坏呢
- 可燃冰秒懂百科_可燃冰图片
- 求实中学_关于求实中学的介绍_今日精选
- 离婚后二婚办结婚证要哪些手续怎么办
- 国家管网西气东输向河南供气突破800亿立方米
- 热门:十大高性价比冰箱品牌,高配低价,不花冤枉钱!
- 市政务服务和大数据管理局加速推进实体大厅建设-每日短讯
- 每日时讯!今日肇庆砚洲岛可以自己开车去吗_肇庆砚洲岛有哪些好玩的
- 华夏幸福:4月3日融券卖出3万股,融资融券余额3.64亿元
- 中煤能源(01898.HK):4月3日南向资金减持602.8万股
- 真正的高手,都具有迭代思维
- 全球讯息:简历自荐书背景_简历自荐书
- 世界速递!为什么美国天然气期货暴跌50% 仍无法阻止产量持续增长?
- SMM评论:减产消息提振 不锈钢期货暂获喘息 能否“止泻”?|独家焦点
- java字节流和字符流 全球微头条
- 涉嫌制造俄罗斯圣彼得堡咖啡店爆炸案的一名嫌犯被拘捕 世界新动态
- 快消息!龚静:附近感 人之情
- 4月03日15时陕西榆林累计疫情数据及榆林目前为止疫情总人数_今日讯
- 滚动:中信博成功斩获墨西哥365MW跟踪项目
- 当前最新:工信部:高质量建设大数据领域国家新型工业化产业示范基地
- 花季(随笔_天天新资讯
- 港元存款2月跌1.1%
- 【全球热闻】2023苏格兰威士忌十大排名--07百富The Balvenie
- 【播资讯】领地控股:2022年实现收入140亿元,年内亏损50.97亿元
- 污动画名称-全球即时看
- 英雄之光|只要我们记得你,你就还活着.....|世界热头条
X 关闭