【入门Flink】- 03Flink部署

news2024/11/26 14:43:52

集群角色

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">
                                <transformer
                                        implementation="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.coloradmin.cn/o/1162380.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2021上半年下午网络工程师试题

2021上半年下午网络工程师试题 试题一(共20分) 阅读以下说明&#xff0c;回答问题1至问题4&#xff0c;将解答填入答题纸对应的解答栏内。 【说明】 某企业网络拓扑图如图1-1所示。该网络可以实现的网络功能有: 1.汇聚层交换机A与交换机B采用VRRP技术组网&#xff1b; 2.…

myabtis流式查询

1、流式查询简介 流式处理在大数据方面应用比较广泛。随着数据的爆发式增长&#xff0c;流式处理的方式也被应用到日常的工具中&#xff0c;如JDK的对于集合处理的Stream流、Redis5.0新增的数据结构Stream专门来处理消息等。 流式查询指的是查询成功后不是返回一个集合而是返回…

景联文科技:高质量数据采集清洗标注服务,助力大语言模型红蓝对抗更加精准高效

红蓝对抗是一种测试和评估大语言模型的方法。通过模拟真实世界测试AI模型的潜在漏洞、偏见和弱点&#xff0c;确保大型语言模型的可靠性和性能。 在红蓝对抗过程中&#xff0c;由主题专家组成的专业团队负责模拟攻击和提供反馈&#xff0c;他们试图诱导AI模型产生不当行为&…

电子商务平台对接电商供应链,不得不说的开放平台电商API接口

B2B电商开放平台的设计需要从以下几面去思考&#xff1a; 开放平台API接口的设计&#xff0c;主要是从功能需求的角度&#xff0c;设计满足业务需求的接口及对应的字段&#xff1b; 平台与商家之间信息的对接&#xff0c;对接的方法有哪些&#xff1f;对接过程中需要可能会遇到…

PaDiM 无监督异常检测和定位-论文和源码阅读

目录 1. 论文 1.1 检测效果 1.2 框架 1.2.1 特征提取embedding extraction 1.2.2 正样本学习Learning of the normality 1.2.3 计算异常图 inference: computation of the anomaly map 2. 源码 2.1 dataset 2.2 model 2.3 提取特征 1. 论文 https://arxiv.org/abs/…

Redis 6.0 新功能

1-支持 ACL 1.1-ACL 简介 官网&#xff1a;https://redis.io/topics/acl Redis ACL 是访问控制列表(Access Control List)的缩写&#xff0c;该功能允许根据可以执行的命令和可以访问的键来限制某些连接。 Redis 5 版本之前&#xff0c;Redis 安全规则只有密码控制&#xf…

Python元编程详细教程

嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 简单定义“元编程是一种编写计算机程序的技术&#xff0c;这些程序可以将自己看做数据&#xff0c; 因此你可以在运行时对它进行内审、生成和/或修改”&#xff…

SpringCloud篇---第三篇

系列文章目录 文章目录 系列文章目录一、负载平衡的意义什么?二、什么是Hystrix?它如何实现容错?三、什么是Hystrix断路器?我们需要它吗?一、负载平衡的意义什么? 在计算中,负载平衡可以改善跨计算机,计算机集群,网络链接,中央处理单元或磁盘驱动器等多 种计算资源的…

超高真空变温台的真空压力和气氛精密控制解决方案

摘要&#xff1a;针对目前国内外显微镜探针冷热台普遍缺乏真空压力和气氛环境精密控制装置这一问题&#xff0c;本文提出了解决方案。解决方案采用了电动针阀快速调节进气和排气流量的动态平衡法实现0.1~1000Torr范围的真空压力精密控制&#xff0c;采用了气体质量流量计实现多…

配置OpenCV

Open CV中包含很多图像处理的算法&#xff0c;因此学会正确使用Open CV也是人脸识别研究的一项重要工作。在 VS2017中应用Open CV&#xff0c;需要进行手动配置&#xff0c;下面给出在VS2017中配置Open CV的详细步骤。 1.下载并安装OpenCV3.4.1与VS2017的软件。 2.配置Open CV环…

纠结蓝桥杯参加嵌入式还是单片机组?

纠结蓝桥杯参加嵌入式还是单片机组? 单片机包含于嵌入式&#xff0c;嵌入式不只是单片机。. 你只有浅浅的的单片机基础&#xff0c;只能报单片机了。最近很多小伙伴找我&#xff0c;说想要一些单片机资料&#xff0c;然后我根据自己从业十年经验&#xff0c;熬夜搞了几个通宵…

Selenium安装WebDriver Chrome驱动(含 116/117/118/119/120/)

1、确认浏览器的版本 在浏览器的地址栏&#xff0c;输入chrome://version/&#xff0c;回车后即可查看到对应版本 2、找到对应的chromedriver版本 2.1 114及之前的版本可以通过点击下载chromedriver,根据版本号&#xff08;只看大版本&#xff09;下载对应文件 2.2 116版本…

1. eulerAngles函数

对线性代数库Eigen3中eulerAngles函数的理解_qingtian11112的博客-CSDN博客作用&#xff1a; 将旋转矩阵转换为欧拉角 Vector3f ea mat.eulerAngles(2, 0, 2); // 等价于 mat AngleAxisf(ea[0], Vector3f::UnitZ())* AngleAxisf(ea[1], Vector3f::UnitX())* AngleAxisf(ea[…

《Pytorch新手入门》第二节-动手搭建神经网络

《Pytorch新手入门》第二节-动手搭建神经网络 一、神经网络介绍二、使用torch.nn搭建神经网络2.1 定义网络2.2 torch.autograd.Variable2.3 损失函数与反向传播2.4 优化器torch.optim 三、实战-实现图像分类(CIFAR-10数据集)3.1 CIFAR-10数据集加载与预处理3.2 定义网络结构3.3…

99/年服务器测评,续费也99一年,真香,值得入手

每个帐号都有开通名额&#xff0c;开通99元一年&#xff0c;配置2核2G 40G 3M(不限流量)&#xff0c;续费也是99一年 开通之后就可以直接续费&#xff0c;免除后顾之忧&#xff08;一年一年的去续费&#xff0c;直接选择5年价格不太对&#xff09; 地址&#xff1a;https://mur…

成为java高手的八个条件

成为java高手的八个条件 1、扎实的基础 数据结构、离散数学、编译原理&#xff0c;这些是所有计算机科学的基础&#xff0c;如果不掌握它们&#xff0c;很难写出高水平的程序。程序人人都会写&#xff0c;但当你发现写到一定程度很难再提高的时候&#xff0c;就应该想想是不…

投资者如何保障个人利益?行业律师与欧科云链专家给出建议

香港作为全球加速拥抱Web3变革的引领之地&#xff0c;规定自今年6月起在香港经营虚拟资产服务业务需申领牌照。蜂拥而至的Web3创业公司&#xff0c;伺机而动的加密货币交易所&#xff0c;以及跃跃欲试的行业从业者&#xff0c;都让这座金融之都热闹非凡。但近期伴随JPEX诈骗案等…

HarmonyOS UI 开发

引言 HarmonyOS 提供了强大的 UI 开发工具和组件&#xff0c;使开发者能够创建吸引人的用户界面。本章将详细介绍在 HarmonyOS 中应用 JS、CSS、HTML&#xff0c;HarmonyOS 的 UI 组件以及如何自定义 UI 组件。 目录 JS、CSS、HTML 在 HarmonyOS 中的应用HarmonyOS 的 UI 组…

使用 Sealos 将 ChatGLM3 接入 FastGPT,打造完全私有化 AI 客服

FastGPT 是一款专为客服问答场景而定制的开箱即用的 AI 知识库问答系统。该系统具备可视化工作流功能&#xff0c;允许用户灵活地设计复杂的问答流程&#xff0c;几乎能满足各种客服需求。 在国内市场环境下&#xff0c;离线部署对于企业客户尤为重要。由于数据安全和隐私保护…