当前位置: 首页 > 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

相关文章:

【入门Flink】- 03Flink部署

集群角色 Flik提交作业和执行任务&#xff0c;需要几个关键组件&#xff1a; 客户端(Client)&#xff1a;代码由客户端获取并做转换&#xff0c;之后提交给JobManger JobManager&#xff1a;就是Fink集群里的“管事人”&#xff0c;对作业进行中央调度管理&#xff1b;而它获…...

DockerFile常用保留字指令及知识点合集

目录 DockerFile加深理解&#xff1a; DockerFile常用保留字指令 保留字&#xff1a; RUN&#xff1a;容器构建时需要运行的命令 COPY&#xff1a;类似ADD&#xff0c;拷贝文件和目录到镜像中。 将从构建上下文目录中 <源路径> 的文件/目录复制到新的一层的镜像内的 …...

怎么批量删除文件名中的空格?

怎么批量删除文件名中的空格&#xff1f;当我们整理文件的时候发现文件名里面有一些空格&#xff0c;如果空格较多&#xff0c;可能会造成文件名特别的长&#xff0c;我们一般会随手对文件进行重命名&#xff0c;然后将文件名中的空格删除掉&#xff0c;这项操作非常的简单方便…...

回顾十大数据恢复软件,帮助用于恢复丢失的文件!

您是否因丢失计算机上的重要文件而感到恐慌&#xff1f;你不是一个人&#xff01;数据丢失是许多人面临的严重问题&#xff0c;但幸运的是&#xff0c;有许多解决方案可以恢复数据。 在本文中&#xff0c;我将回顾十大数据恢复软件&#xff0c;以帮助您恢复丢失的文件&#xf…...

【Linux】多路IO复用技术②——poll详解如何使用poll模型实现简易的一对多服务器(附图解与代码实现)

在阅读本篇博客之前&#xff0c;建议大家先去看一下我之前写的这篇博客&#xff0c;否则你很可能会一头雾水 【Linux】多路IO复用技术①——select详解&如何使用select模型在本地主机实现简易的一对多服务器&#xff08;附图解与代码实现&#xff09;http://t.csdnimg.cn/…...

CSS 滚动捕获 Scroll Snap

CSS 滚动捕获 Scroll Snap CSS 滚动捕获允许开发者通过声明一些位置(或叫作捕获位置)来创建精准控制的滚动体验. 通常来说轮播图就是这种体验的例子, 在轮播图中, 用户只能停在图 A 或者图 B, 而不能停在 A 和 B 的中间. 比如平时用淘宝或小红书, 当你上滑到下一个推荐内容时…...

【带头学C++】----- 三、指针章 ---- 3.9 数组作为函数的参数

当数组作为函数参数时&#xff0c;有几种常见的方式可以传递数组给函数&#xff1a; 数组作为指针传递&#xff1a; 数组名在函数调用时会自动转换为指向数组第一个元素的指针。通过指针可以访问数组元素&#xff0c;但无法获取数组的大小。在函数中修改指针指向的值会影响原始…...

完美处理 Android App 的 apk 输出路径与文件名

实现代码 buildTypes {// ...applicationVariants.all {variant ->variant.outputs.all {Calendar calendar Calendar.getInstance(Locale.CHINA);def buildDate String.format(Locale.CHINA, "%04d%02d%02d", calendar.get(Calendar.YEAR), calendar.get(Cale…...

【技术干货】开源库 Com.Gitusme.Net.Extensiones.Core 的使用

目录 1、项目介绍 2、为项目添加依赖 3、代码中导入命名空间 4、代码中使用 示例 1&#xff1a;string转换 示例 2&#xff1a;object转换 1、项目介绍 Com.Gitusme.Net.Extensiones.Core是一个.Net扩展库。当前最新版本1.0.4&#xff0c;提供了常见类型转换&#xff0c…...

大厂面试题-b树和b+树的理解

为了更清晰的解答这个问题&#xff0c;从三个方面来回答&#xff1a; a.了解二叉树、AVL树、B树的概念 b.B树和B树的应用场景 1.B树是一种多路平衡查找树&#xff0c;为了更形象的理解&#xff0c;我们来看这张图。 二叉树&#xff0c;每个节点支持两个分支的树结构&#xff…...

NeRF-SLAM部署运行(3060Ti)

记录在部署运行期间遇到的一些问题&#xff0c;分享给大家~ 一、环境 RTX 3060 Ti、8G显存、Ubuntu18.04 二、部署 1. 下载代码 git clone https://github.com/jrpowers/NeRF-SLAM.git --recurse-submodules git submodule update --init --recursive cd thirdparty/insta…...

零基础编程入门教程软件推荐,零基础编程自学

零基础编程入门教程软件推荐&#xff0c;零基础编程自学 给大家分享一款中文编程工具&#xff0c;零基础轻松学编程&#xff0c;不需英语基础&#xff0c;编程工具可下载。 这款工具不但可以连接部分硬件&#xff0c;而且可以开发大型的软件&#xff0c;象如图这个实例就是用…...

Amazon EC2 安全可调用的云虚拟主机服务器

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; Amazon EC2 打造全新的科技链 Amazon Elastic Compute Cloud&#xff08;Amazon EC2&#xff09;提供最广泛、最深入的计算平台&#xff0c;拥有超过 500 个实例&…...

HTTP/HTTPS、SSL/TLS、WS/WSS 都是什么?

有同学问我&#xff0c;HTTP/HTTPS、SSL/TLS、WS/WSS 这都是些什么&#xff1f;那我们就先从概念说起&#xff1a; HTTP 是超文本传输协议&#xff0c;信息是通过明文传输。HTTPS 是在 HTTP 的基础上信息通过加密后再传输。SSL 是实现 HTTPS 信息传输加密的算法。TLS 是 SSL 的…...

软考之系统安全理论基础+例题

系统安全 系统安全性分析与设计 作为全方位的、整体的系统安全防范体系也是分层次的&#xff0c;不同层次反映了不同的安全问题&#xff0c;根据网络的应用现状情况和结构&#xff0c;可以将安全防范体系的层次划分为 物理层安全系统层安全网络层安全应用层安全安全管理。 …...

棱镜七彩亮相工控中国大会,以软件供应链安全助力新型工业化高质量发展

2023年11月1日-3日&#xff0c;2023第三届工控中国大会在苏州国际会议中心举办&#xff0c;本届大会由中国电子信息产业发展研究院、中国工业经济联合会、国家智能制造专家委员会、国家产业基础专家委员会、江苏省工业和信息化厅、江苏省国有资产监督管理委员会、苏州市人民政府…...

数据可视化:动态柱状图

终于来到最后一个数据可视化的文章拿啦~~~ 在这里学习如何绘制动态柱状图 我先整个活 (๑′ᴗ‵๑)&#xff29; Lᵒᵛᵉᵧₒᵤ❤ 什么是pyecharts&#xff1f; 答&#xff1a; Python的Pyecharts软件包。它是一个用于Python数据可视化和图表绘制的库&#xff0c;可用于制作…...

vue3 自定义loading

使用antdv 后发现只有button支持loaidng属性&#xff0c;而其他元素不能使用loading来显示是否加载中&#xff0c;需要套一层 a-spin 才能支持&#xff0c;非常不方便。 所以写了个自定义的指令来进行处理 新建loading.vue文件用来页面显示 <template><div class&q…...

Ceph-deploy跳过gpg-key验证(离线环境安装Ceph)

问题 CentOS-7.6.1810离线环境搭建Ceph环境时出现gpg-key安装源公钥检查错误。原因是执行ceph-deploy install 命令的服务器无法访问互联网。具体报错如下图&#xff1a; 解决 安装命令后新增--no-adjust-repos参数即可跳过安装 GPG 密钥。 命令如下&#xff1a; ceph-deplo…...

想入行单片机开发的学生们的忠告

想入行单片机开发的学生们的忠告 做嵌入式单片机开发十来年。想给那些想入行单片机开发的同学一些建议。 1.想做这行&#xff0c;做好坚持学习的准备。最近很多小伙伴找我&#xff0c;说想要一些单片机的资料&#xff0c;然后我根据自己从业十年经验&#xff0c;熬夜搞了几个通…...

告别编译报错!Termux安装Pandas最稳方案实测(附Matplotlib、Numpy、Scipy一键配置清单)

Termux科学计算环境搭建&#xff1a;零报错安装Pandas与数据三件套实战指南 在移动端进行Python数据分析曾是天方夜谭&#xff0c;直到Termux的出现打破了这一限制。但许多用户在安装Pandas、Numpy、Scipy和Matplotlib这组"数据科学四件套"时&#xff0c;总会遇到各种…...

Open-AutoGLM场景实战:电商购物、出行旅游、内容浏览一键完成

Open-AutoGLM场景实战&#xff1a;电商购物、出行旅游、内容浏览一键完成 1. 引言&#xff1a;手机AI助手的革命性突破 想象一下这样的场景&#xff1a;早上醒来&#xff0c;你对手机说"帮我订一杯星巴克拿铁和一份三明治"&#xff0c;手机自动完成打开外卖应用、选…...

MySQL 中 count(*)、count(1) 和 count(字段名) 有什么区别?

一、快速结论&#xff08;先看结论再看分析&#xff09;方式作用效率一句话总结count(*)统计所有行数⭐⭐⭐⭐ 最高我是专业的&#xff01;我为统计而生count(1)统计所有行数⭐⭐⭐⭐ 同样高效我是 count(*) 的马甲兄弟count(列名)统计该列非 NULL 的行数⭐⭐⭐ 较慢我挑剔&…...

告别云端依赖!DeepSeek-R1-Distill-Qwen-1.5B离线运行全攻略

告别云端依赖&#xff01;DeepSeek-R1-Distill-Qwen-1.5B离线运行全攻略 1. 为什么选择离线运行DeepSeek-R1-Distill-Qwen-1.5B&#xff1f; 在AI应用日益普及的今天&#xff0c;大多数用户仍然依赖云端服务来运行大语言模型。但云端服务存在隐私泄露、网络延迟、使用成本高等…...

交通流预测代码复现:提出了一种创新的时间感知结构-语义耦合图网络,旨在解决图学习中的困难问题

交通流预测代码复现&#xff1a;提出了一种创新的时间感知结构-语义耦合图网络&#xff0c;旨在解决图学习中的困难问题 [1]我们设计了新的图学习块&#xff0c;能够同时学习图的结构和语义方面&#xff0c;从而捕获图的固有特征 [2]我们还引入了自采样方法&#xff0c;对相关的…...

Graphormer开源镜像部署指南:3.7GB轻量模型GPU快速启动(RTX4090实测)

Graphormer开源镜像部署指南&#xff1a;3.7GB轻量模型GPU快速启动&#xff08;RTX4090实测&#xff09; 1. 项目概述 Graphormer是一种基于纯Transformer架构的图神经网络&#xff0c;专门为分子图&#xff08;原子-键结构&#xff09;的全局结构建模与属性预测而设计。该模…...

一键部署文档分析服务:YOLO X Layout模型Docker实战教程

一键部署文档分析服务&#xff1a;YOLO X Layout模型Docker实战教程 1. 为什么需要文档版面分析&#xff1f; 在日常工作中&#xff0c;我们经常遇到这样的场景&#xff1a;收到一份扫描的合同PDF&#xff0c;需要提取关键条款&#xff1b;或者拿到一份企业年报&#xff0c;想…...

MeteorSeed

从0构建WAV文件&#xff1a;读懂计算机文件的本质 虽然接触计算机有一段时间了&#xff0c;但是我的视野一直局限于一个较小的范围之内&#xff0c;往往只能看到于算法竞赛相关的内容&#xff0c;计算机各种文件在我看来十分复杂&#xff0c;认为构建他们并能达到目的是一件困难…...

OpenClaw二次开发:基于Qwen3.5-9B定制个性化技能模块

OpenClaw二次开发&#xff1a;基于Qwen3.5-9B定制个性化技能模块 1. 为什么需要自定义技能模块 去年冬天&#xff0c;我发现自己每天早晨都要手动查询天气来决定穿什么衣服。作为一个技术爱好者&#xff0c;我开始思考&#xff1a;能否让OpenClaw自动完成这个任务&#xff1f…...

3个高效管理技巧让Windows右键菜单秒变清爽

3个高效管理技巧让Windows右键菜单秒变清爽 【免费下载链接】ContextMenuManager &#x1f5b1;️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager Windows右键菜单是日常操作的重要入口&#xff0c;但随着软件安装增多…...