【入门Flink】- 03Flink部署

集群角色

Flik提交作业和执行任务,需要几个关键组件:

  • 客户端(Client):代码由客户端获取并做转换,之后提交给JobManger

  • JobManager:就是Fink集群里的“管事人”,对作业进行中央调度管理;而它获取到要执行的作业后,会进一步处理转换,然后分发任务给众多的TaskManager。

  • TaskManager:就是真正“干活的人”,数据的处理操作都是它们来做的。

Flink 运行时由两种类型的进程组成:一个 JobManager 和一个或者多个 TaskManager

image-20231102105455964

安装部署

开两台虚拟机部署,部署Flink之前虚拟机自行安装JDK环境,Flink运行依赖JDK。

节点服务器192.168.197.130192.168.197.131
角色JobManager TaskManagerTaskManager

1)下载并解压安装包

(1)下载安装包 flink-1.17.0-bin-scala_2.12.tgz,将该 文件上传到/home/likelong/Desktop/software

(2)解压

tar -zxvf flink-1.17.0-binscala_2.12.tgz

2)修改集群配置

(1) 进 入 conf 路 径 , 修 改 flink-conf.yaml 文 件 , 指定 192.168.197.130 节点服务器为JobManager

修改如下内容:

# JobManager 节点地址.
jobmanager.rpc.address: 192.168.197.130
jobmanager.bind-host: 0.0.0.0
rest.address: 192.168.197.130
rest.bind-address: 0.0.0.0
# TaskManager 节点地址.需要配置为当前机器名
taskmanager.bind-host: 0.0.0.0
taskmanager.host: 192.168.197.130

(2)修改 workers 文件,指定 192.168.197.130 和 192.168.197.131 为TaskManager

[likelong@localhost conf]$ vim workers 

修改如下内容:

192.168.197.130
192.168.197.131

(3)修改 masters 文件

[likelong@localhost conf]$ vim masters

修改如下内容:

192.168.197.130: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。优先级低于代码中进行的并行度配置和任务提交时使用参数指定的并行度数量。

3)分发安装目录

(1)将整个修改好的 Flink 解压目录使用 scp 远程拷贝命令发送到从节点

scp -r /home/likelong/Desktop/software/flink-1.17.0 192.168.197.131:/home/likelong/Desktop/software

(2)修改 192.168.197.131 的 taskmanager.host

vim flink-conf.yaml 

修改如下内容:

# TaskManager 节点地址.需要配置为当前机器名
taskmanager.host: 192.168.197.131

4)启动集群

(1)在 192.168.197.130 节点服务器上执行 start-cluster.sh 启动Flink 集群:

bin/start-cluster.sh

(2)查看进程情况:

[root@localhost bin]# jps -l

image-20231101224858572

5)访问 Web UI

开放8081端口:

sudo firewall-cmd --zone=public --add-port=8081/tcp --permanent
sudo firewall-cmd --reload

启动成功后,同样可以访问 http://192.168.197.130:8081 对 flink 集群和任务进行监控管理。

image-20231101225118839

可以看到,当前集群的 TaskManager 数量为 2;由于默认每个TaskManager的Slot 数量为 1,所以总 Slot 数和可用 Slot 数都为 2。

向集群提交作业

1)环境准备

目标主机,运行程序

nc -lk 7777

2)程序打包

pom.xml 文件中添加打包插件的配置

    <build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>3.2.4</version><executions><execution><phase>package</phase><goals><goal>shade</goal></goals><configuration><artifactSet><excludes><exclude>com.google.code.findbugs:jsr305</exclude><exclude>org.slf4j:*</exclude><exclude>log4j:*</exclude></excludes></artifactSet><filters><filter><!-- Do not copy the signaturesinthe META-INF folder.Otherwise, this mightcauseSecurityExceptions when using the JAR. --><artifact>*:*</artifact><excludes><exclude>METAINF/*.SF</exclude><exclude>METAINF/*.DSA</exclude><exclude>METAINF/*.RSA</exclude></excludes></filter></filters><transformers combine.children="append"><transformerimplementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"></transformer></transformers></configuration></execution></executions></plugin></plugins></build>

将依赖添加一个作用域,打包时依赖不需要打包进去,这样打包大小会小一些

image-20231102000059018

此时发现启动会报错,只需修改运行配置即可,步骤如下:

image-20231102091101807

Edit Configurations -> Modify options 勾选如下按钮即可(idea 2023.1.5版本)

image-20231102000327569

防止后面每个项目都要单独设置,可以统一配置模板,步骤如下:

image-20231102000552963

打包。maven先clean再package

3)在 Web UI 上提交作业

  1. 提交jar包

image-20231102002008082

  1. 类一定要配置,并且是全限定名,然后提交任务

image-20231102002154428

  1. 如下步骤,查看标准输出和日志

image-20231102002633616

image-20231102003000550

此时任务能够顺利运行。

  1. 点击该任务,可以查看任务运行的具体情况,也可以通过点击“Cancel Job”结束任务运行

image-20231102003333157

4)命令行提交作业

只需运行如下命令即可(注意jar包位置),效果与上述UI提交一致:

bin/flink run -m 192.168.197.130:8081 -c com.lkl.StreamSocketWordCount ../day5-flink-1.0-SNAPSHOT.jar

参数 -m 指定了提交到的 JobManager,-c 指定了入口类

image-20231102003954807

提交成功,运行效果一致。

在/flink-1.17.0/log 路径中,可以查看 TaskManager 节点

image-20231102004351769

单节点部署

如果仅是单节点部署

修改flink配置文件 flink-conf.yaml
找到如下配置,默认localhost,修改为0.0.0.0,启动即可【为了远程可以访问Flink UI界面】

image-20231102133828035

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/160314.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C语法学习】5 - fputc()函数

文章目录 1 函数原型2 参数3 返回值4 比较5 示例5.1 示例15.2 示例25.3 示例3 1 函数原型 fputc()&#xff1a;将一个字符发送至指定流stream&#xff0c;函数原型如下&#xff1a; int fputc(int c, FILE *stream);2 参数 fputc()函数有两个参数c和stream&#xff1a; 参数…

Spring Data Redis + RabbitMQ - 基于 string 实现缓存、计数功能(同步数据)

目录 一、Spring Data Redis 1.1、缓存功能 1.1.1、分析 1.1.2、案例实现 1.1.3、效果演示 1.2、计数功能&#xff08;Redis RabbitMQ&#xff09; 1.2.1、分析 1.2.2、案例实现 一、Spring Data Redis 1.1、缓存功能 1.1.1、分析 使用 redis 作为缓存&#xff0c; M…

甘特图组件DHTMLX Gantt用例 - 如何拆分任务和里程碑项目路线图

创建一致且引人注意的视觉样式是任何项目管理应用程序的重要要求&#xff0c;这就是为什么我们会在这个系列中继续探索DHTMLX Gantt图库的自定义。在本文中我们将考虑一个新的甘特图定制场景&#xff0c;DHTMLX Gantt组件如何创建一个项目路线图。 DHTMLX Gantt正式版下载 用…

系列五、映射文件xxxMapper.xml

一、概述 mapper映射文件是mybatis中最重要的部分&#xff0c;涉及到的细节也非常多。 1.1、parameterType 表示输入参数的类型。例如&#xff1a; <select id"getUserById" parameterType"integer" resultType"org.star.entity.model.UserDO&…

C语言 程序环境 编译和链接

目录 1.程序的翻译环境和执行环境 2.详解C语言程序的编译和链接 2.1翻译环镜 2.2翻译的几个阶段 2.2.1预编译 2.2.2编译 词法分析 符号汇总 2.2.3汇编 生成符号表 2.3链接 1.合并段表 2.合并符号表和重定位 2.4运行环境 1.程序的翻译环境和执行环境 在ANSI C的任…

【Linux】 ps 命令使用

ps &#xff08;英文全拼&#xff1a;process status&#xff09;命令用于显示当前进程的状态&#xff0c;类似于 windows 的任务管理器。 语法 ps [选项] ps命令 -Linux手册页 著者 ps最初由布兰科兰克斯特撰写<lankestefwi.uva.nl>。迈克尔K约翰逊<johnsonmred…

2.Spark的工作与架构原理

概述 目标&#xff1a; spark的工作原理spark数据处理通用流程rdd 什么是rddrdd 的特点 spark架构 spark架构相关进程spark架构原理 spark的工作原理 spark 的工作原理&#xff0c;如下图 图中中间部分是spark集群&#xff0c;也可以是基于 yarn 的&#xff0c;图上可以…

coalesce函数(SQL )

用途&#xff1a; 将控制替换成其他值&#xff1b;返回第一个非空值 表达式 COALESCE是一个函数&#xff0c; (expression_1, expression_2, …,expression_n)依次参考各参数表达式&#xff0c;遇到非null值即停止并返回该值。如果所有的表达式都是空值&#xff0c;最终将返…

Java数据类型

Java数据类型 文章目录 Java数据类型一、基本类型&#xff08;1&#xff09;整数类型&#xff08;2&#xff09;小数类型&#xff08;3&#xff09;真假类型&#xff08;4&#xff09;字符类型 二、数组类型三、逻辑运算1. 三元运算符2.if语句3.Switch语句4. Switch语句case穿透…

4 个最常见的自动化测试挑战及应对措施

有人说&#xff1a;“杂乱无章的自动化只会带来更快的混乱。”不仅更快&#xff0c;而且是更严重、更大的混乱。如果使用得当&#xff0c;自动化可以成为测试团队中令人惊叹的生产力助推器和系统的质量增强器。自动化测试的关键是要正确运用&#xff0c;这是初始最困难的部分。…

大数据毕业设计选题推荐-热门旅游景点数据分析-Hadoop-Spark-Hive

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

【马蹄集】—— 百度之星 2023

百度之星 2023 目录 BD202301 公园⭐BD202302 蛋糕划分⭐⭐⭐BD202303 第五维度⭐⭐ BD202301 公园⭐ 难度&#xff1a;钻石    时间限制&#xff1a;1秒    占用内存&#xff1a;64M 题目描述 今天是六一节&#xff0c;小度去公园玩&#xff0c;公园一共 N N N 个景点&am…