Flink提交任务

第3章 Flink部署

3.1 集群角色

3.2 Flink集群搭建

3.2.1 集群启动

0)集群规划

表3-1 集群角色分配

具体安装部署步骤如下:

1)下载并解压安装包

(1)下载安装包flink-1.17.0-bin-scala_2.12.tgz,将该jar包上传到hadoop102节点服务器的/opt/software路径上。

(2)在/opt/software路径上解压flink-1.17.0-bin-scala_2.12.tgz到/opt/module路径上。

atguigu@hadoop102 software\]$ tar -zxvf flink-1.17.0-bin-scala_2.12.tgz -C /opt/module/ 2)修改集群配置 (1)进入conf路径,修改flink-conf.yaml文件,指定hadoop102节点服务器为JobManager \[atguigu@hadoop102 conf\]$ vim flink-conf.yaml 修改如下内容: ## JobManager节点地址. jobmanager.rpc.address: hadoop102 jobmanager.bind-host: 0.0.0.0 rest.address: hadoop102 rest.bind-address: 0.0.0.0 ## TaskManager节点地址.需要配置为当前机器名 taskmanager.bind-host: 0.0.0.0 taskmanager.host: hadoop102 (2)修改workers文件,指定hadoop102、hadoop103和hadoop104为TaskManager \[atguigu@hadoop102 conf\]$ vim workers 修改如下内容: hadoop102 hadoop103 hadoop104 (3)修改masters文件 \[atguigu@hadoop102 conf\]$ vim masters 修改如下内容: hadoop102:8081 (4)另外,在flink-conf.yaml文件中还可以对集群中的JobManager和TaskManager组件进行优化配置,主要配置项如下: jobmanager.memory.process.size:对JobManager进程可使用到的全部内存进行配置,包括JVM元空间和其他开销,默认为1600M,可以根据集群规模进行适当调整。 taskmanager.memory.process.size:对TaskManager进程可使用到的全部内存进行配置,包括JVM元空间和其他开销,默认为1728M,可以根据集群规模进行适当调整。 taskmanager.numberOfTaskSlots:对每个TaskManager能够分配的Slot数量进行配置,默认为1,可根据TaskManager所在的机器能够提供给Flink的CPU数量决定。所谓Slot就是TaskManager中具体运行一个任务所分配的计算资源。 parallelism.default:Flink任务执行的并行度,默认为1。优先级低于代码中进行的并行度配置和任务提交时使用参数指定的并行度数量。 关于Slot和并行度的概念,我们会在下一章做详细讲解。 3)分发安装目录 (1)配置修改完毕后,将Flink安装目录发给另外两个节点服务器。 \[atguigu@hadoop102 module\]$ xsync flink-1.17.0/ (2)修改hadoop103的 taskmanager.host \[atguigu@hadoop103 conf\]$ vim flink-conf.yaml 修改如下内容: ## TaskManager节点地址.需要配置为当前机器名 taskmanager.host: hadoop103 (3)修改hadoop104的 taskmanager.host \[atguigu@hadoop104 conf\]$ vim flink-conf.yaml 修改如下内容: ## TaskManager节点地址.需要配置为当前机器名 taskmanager.host: hadoop104 4)启动集群 (1)在hadoop102节点服务器上执行start-cluster.sh启动Flink集群: \[atguigu@hadoop102 flink-1.17.0\]$ bin/start-cluster.sh (2)查看进程情况: \[atguigu@hadoop102 flink-1.17.0\]$ jpsall =============== hadoop102 =============== 4453 StandaloneSessionClusterEntrypoint 4458 TaskManagerRunner 4533 Jps =============== hadoop103 =============== 2872 TaskManagerRunner 2941 Jps =============== hadoop104 =============== 2948 Jps 2876 TaskManagerRunner 5)访问Web UI 启动成功后,同样可以访问**http://hadoop102:8081** 对flink集群和任务进行监控管理。 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/af4fb8722f2c4bd19ca4a747a9cf4d71.png) 这里可以明显看到,当前集群的TaskManager数量为3;由于默认每个TaskManager的Slot数量为1,所以总Slot数和可用Slot数都为3。 ### 3.2.2 向集群提交作业 在上一章中,我们已经编写读取socket发送的单词并统计单词的个数程序案例。本节我们将以该程序为例,演示如何将任务提交到集群中进行执行。具体步骤如下。 1)环境准备 在hadoop102中执行以下命令启动netcat。 \[atguigu@hadoop102 flink-1.17.0\]$ nc -lk 7777 2)程序打包 (1)在我们编写的Flink入门程序的pom.xml文件中添加打包插件的配置,具体如下: org.apache.maven.plugins maven-shade-plugin 3.2.4 package shade com.google.code.findbugs:jsr305 org.slf4j:* log4j:* *:* META-INF/*.SF META-INF/*.DSA META-INF/*.RSA (2)插件配置完毕后,可以使用IDEA的Maven工具执行package命令,出现如下提示即表示打包成功。 \[INFO\] BUILD SUCCESS 打包完成后,在target目录下即可找到所需JAR包,JAR包会有两个,FlinkTutorial-1.0-SNAPSHOT.jar和FlinkTutorial-1.0-SNAPSHOT-jar-with-dependencies.jar,因为集群中已经具备任务运行所需的所有依赖,所以建议使用FlinkTutorial-1.0-SNAPSHOT.jar。 3)在Web UI上提交作业 (1)任务打包完成后,我们打开Flink的WEB UI页面,在右侧导航栏点击"Submit New Job",然后点击按钮"+ Add New",选择要上传运行的JAR包,如下图所示。 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6fcc3a40aac9410e8ceb09be320026ab.png) JAR包上传完成,如下图所示: (2)点击该JAR包,出现任务配置页面,进行相应配置。 主要配置程序入口主类的全类名,任务运行的并行度,任务运行所需的配置参数和保存点路径等,如下图所示,配置完成后,即可点击按钮"Submit",将任务提交到集群运行。 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/eb6d1904a80f40e0973b2d62dd0c40d0.png) (3)任务提交成功之后,可点击左侧导航栏的"Running Jobs"查看程序运行列表情况。 (4)测试 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/a31858699c9b497e98b494d531efca67.png) ①在socket端口中输入hello \[atguigu@hadoop102 flink-1.17.0\]$ nc -lk 7777 hello ②先点击Task Manager,然后点击右侧的192.168.10.104服务器节点 ③点击Stdout,就可以看到hello单词的统计 注意:如果hadoop104节点没有统计单词数据,可以去其他TaskManager节点查看。 (4)点击该任务,可以查看任务运行的具体情况,也可以通过点击"Cancel Job"结束任务运行。 4)命令行提交作业 除了通过WEB UI界面提交任务之外,也可以直接通过命令行来提交任务。这里为方便起见,我们可以先把jar包直接上传到目录flink-1.17.0下 (1)首先需要启动集群。 \[atguigu@hadoop102 flink-1.17.0\]$ bin/start-cluster.sh (2)在hadoop102中执行以下命令启动netcat。 \[atguigu@hadoop102 flink-1.17.0\]$ nc -lk 7777 (3)将flink程序运行jar包上传到/opt/module/flink-1.17.0路径。 (4)进入到flink的安装路径下,在命令行使用flink run命令提交作业。 \[atguigu@hadoop102 flink-1.17.0\]$ bin/flink run -m hadoop102:8081 -c com.atguigu.wc.SocketStreamWordCount ./FlinkTutorial-1.0-SNAPSHOT.jar 这里的参数 -m指定了提交到的JobManager,-c指定了入口类。 (5)在浏览器中打开Web UI,http://hadoop102:8081查看应用执行情况。 用netcat输入数据,可以在TaskManager的标准输出(Stdout)看到对应的统计结果。 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/ec51d77a10234475a6a3dd987ea983e9.png) (6)在/opt/module/flink-1.17.0/log路径中,可以查看TaskManager节点。 \[atguigu@hadoop102 log\]$ cat flink-atguigu-standalonesession-0-hadoop102.out (hello,1) (hello,2) (flink,1) (hello,3) (scala,1)

相关推荐
天氰色等烟雨23 分钟前
Flink 1.20 Kafka Connector:新旧 API 深度解析与迁移指南
大数据
你觉得20520 小时前
哈尔滨工业大学DeepSeek公开课:探索大模型原理、技术与应用从GPT到DeepSeek|附视频与讲义下载方法
大数据·人工智能·python·gpt·学习·机器学习·aigc
啊喜拔牙20 小时前
1. hadoop 集群的常用命令
java·大数据·开发语言·python·scala
别惊鹊21 小时前
MapReduce工作原理
大数据·mapreduce
8K超高清21 小时前
中国8K摄像机:科技赋能文化传承新图景
大数据·人工智能·科技·物联网·智能硬件
2401_871290581 天前
MapReduce 的工作原理
大数据·mapreduce
SelectDB技术团队1 天前
Apache Doris 2025 Roadmap:构建 GenAI 时代实时高效统一的数据底座
大数据·数据库·数据仓库·人工智能·ai·数据分析·湖仓一体
你觉得2051 天前
浙江大学朱霖潮研究员:《人工智能重塑科学与工程研究》以蛋白质结构预测为例|附PPT下载方法
大数据·人工智能·机器学习·ai·云计算·aigc·powerpoint
益莱储中国1 天前
世界通信大会、嵌入式展及慕尼黑上海光博会亮点回顾
大数据
Loving_enjoy1 天前
基于Hadoop的明星社交媒体影响力数据挖掘平台:设计与实现
大数据·hadoop·数据挖掘