当前位置: 首页 > news >正文

【入门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

相关文章:

  • nodelist 与 HTMLCollection 的区别
  • 2024 Android Framework学习大纲之基础理论篇
  • Nginx服务器安装证书并启用SSL(acme.sh)
  • MySQL 表的增删查改(CRUD)
  • 基于级联延迟信号消除的锁相环(CDSC_PLL)技术MATLAB仿真
  • mediasoup udp端口分配策略
  • [笔记] 汉字判断
  • 学电脑编程零基础,计算机编程入门先学什么
  • Android startActivity流程
  • ruby语言怎么写个通用爬虫程序?
  • gcc -static 在centos stream8 和centos stream9中运行报错的解决办法
  • Linux中的进程等待
  • Spring-Spring 之底层架构核心概念解析
  • Zabbix如何监控腾讯云NAT网关
  • 离散傅里叶变换中的能量守恒公式(帕斯瓦尔定理)及其程序举例验证
  • JavaScript的使用你知道几种?(上)
  • overflow: hidden IE7无效
  • Protobuf3语言指南
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • STAR法则
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 关于 Cirru Editor 存储格式
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 数组的操作
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • FaaS 的简单实践
  • Prometheus VS InfluxDB
  • 关于Android全面屏虚拟导航栏的适配总结
  • #git 撤消对文件的更改
  • ${ }的特别功能
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (转) Face-Resources
  • (转) 深度模型优化性能 调参
  • (转)C#调用WebService 基础
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .NET Core 2.1路线图
  • .net web项目 调用webService
  • .net 怎么循环得到数组里的值_关于js数组
  • .net操作Excel出错解决
  • .pyc文件还原.py文件_Python什么情况下会生成pyc文件?
  • @select 怎么写存储过程_你知道select语句和update语句分别是怎么执行的吗?
  • [2019/05/17]解决springboot测试List接口时JSON传参异常
  • [Android]常见的数据传递方式
  • [ASP.NET MVC]Ajax与CustomErrors的尴尬
  • [GN] Vue3.2 快速上手 ---- 核心语法2
  • [HCTF 2018]WarmUp (代码审计)
  • [iHooya]2023年1月30日作业解析