Flink(二)【Flink 部署模式】
前言
今天是Flink学习的第二天,我的心情异常的复杂哈哈哈(苦笑),学习上还是比较顺利的,感情上我并不擅长,所以心情波动大在所难免。害,至少还有学习让我不被各种糟糕琐碎的日常生活里的人和事所影响。
不管是学习还是生活,保持积极的心态很重要,不要好高骛远,不要想着遥远的目标不敢去努力。
今天摘录《解忧杂货店》的一句话:
如果自己不想积极认真地生活,不管得到什么样的回答都没用。
Flink 提交 Job 的方式
1、Web 端提交 Job
Web UI 的方式就不做介绍了,完全傻瓜式的点击。无非就是需要添加4个参数:
- 入口类的全限定名。
- 并行度(不能超过可用资源,我们的并行度也就是我们 Flink 集群中任务槽的个数Task Slots,默认一个TaskManager 一个任务槽Task Slot)。
- 运行时的参数。
- 检查点的目录(这两里的检查点的概念类似于我们 Spark 中的 checkPoint ,他们都是用来解决预防实时任务失败或关闭重启造成的数据丢失,所以设置一个检查点来对之前的数据进行恢复,那必然是需要额外的资源开销的,比如磁盘开销)。
至于取消任务,UI 端有一个大大的 Cancel。
2、命令行提交 Job
$ bin/flink run -m hadoop102:8081 -c com.study.lyh.wc.StreamWordCount ./FlinkStudy-1.0-SNAPSHOT.jar
如果资源不足,再提交一个任务会使用默认最低的并行度,但要是最低的并行度也不能满足,就直接任务失败。除非上一个任务结束释放资源。
$ bin/flink cancel jobId
部署模式
Flink 一共有三种部署模式:会话模式、单作业模式和应用模式。
1、会话模式
会话模式是先启动集群,然后客户端将用户的程序代码转换成数据流图(Dataflow Graph),并最终生成作业图(JobGraph),然后一并发送给JobManager;作业提交后,JobManager 为作业分配相应的资源,作业完成就释放资源,而集群并不因为没有作业就关闭。
当然缺点也是显而易见的:因为资源是共享的,所以资源不够了,提交新的作业就会失败。另外,同一个 TaskManager 上可能运行了很多作业,如果其中一个发生故障导致 TaskManager 宕机,那么所有作业都会受到影响(因为当作业很多的时候,我们的资源TaskSlot被占满了,所以当有TaskManager节点宕机时,就无法保证容错,因为已经没有空闲资源供使用了,而且后面可能还有一堆作业等着处理呢)。
2、单作业模式
单作业模式也很好理解,就是严格的一对一,集群只为这个作业而生。同样由客户端运行应用程序,然后启动集群,作业被提交给 JobManager,进而分发给 TaskManager 执行。作业完成后,集群就会关闭,所有资源也会释放。这样一来,每个作业都有它自己的 JobManager管理,占用独享的资源,即使发生故障,它的 TaskManager 宕机也不会影响其他作业。(注意:是作业,不是应用,我之前一直觉得这里的作业指的就是应用,但其实不是,一个应用可能包含一个或多个作业。)单作业模式就是为一个作业开启一个集群,就是这么奢侈,但对于运行时间长,需要资源量大的场景,这种牺牲是值得的。
这些特性使得单作业模式在生产环境运行更加稳定,所以是实际应用的首选模式。需要注意的是,Flink 本身无法直接这样运行,所以单作业模式一般需要借助一些资源管理框架来启动集群,比如 YARN、Kubernetes。
3、应用模式
应用模式与单作业模式,都是提交作业之后才创建集群;单作业模式是通过客户端来提交的,客户端解析出的每一个作业对应一个集群;而应用模式下,是直接由 JobManager 执行应用程序的,并且即使应用包含了多个作业,也只创建一个集群。
总结
- 在会话模式下,集群的生命周期独立于集群上运行的任何作业的生命周期,并且提交的所有作业共享资源。
- 而单作业模式为每个提交的作业创建一个集群,带来了更好的资源隔离,这时集群的生命周期与作业的生命周期绑定。
- 最后,应用模式为每个应用程序创建一个会话集群,在 JobManager 上直接调用应用程序的 main()方法。
Yarn
Flink 独立(Standalone)模式由 Flink 自身提供资源,无需其他框架,这种方式降低了和其他第三方资源框架的耦合性,独立性非常强。但是比如独立模式中的单作业模式不依赖外部资源管理框架就无法实现。而我们刚开始提到的提交Job的方式默认就是Flink独立模式下的会话模式。
我们知道,Flink只是一个流式计算框架,它并不擅长资源的管理,所以我们这里使用YARN,而且即使 Flink 的独立模式本就支持会话模式,我们还是使用YARN来管理,毕竟 YARN 是专业的资源调度框架嘛。
Yarn 部署的流程:
客户端把 Flink 应用提交给 Yarn 的 ResourceManager, Yarn 的 ResourceManager 会向 Yarn 的 NodeManager 申请容器。在这些容器上,Flink 会部署JobManager 和 TaskManager 的实例,从而启动集群。Flink 会根据运行在 JobManger 上的作业所需要的 Slot 数量动态分配 TaskManager 资源。
1、Yarn 会话模式
1.1、启动 yarn-session
bin/yarn-session.sh -nm test -d
-nm :指定应用名称
-d :意思是挂载到后台,我们的hadoop102可以 ctrl+C 停止当前会话而并不会关闭 yarn session。

执行该命令后返回的信息中,需要记住两条信息,一个是给我们的 Web UI 端口,一个是关闭该会话的命令。
1.2、提交 Job
注意:这里提交 Job 的用户需要和创建 YARN-Session 的用户保持一致,否则会报错:
The main method caused an error: Failed to execute job ‘Flink Streaming Job’...拒绝连接
bin/flink run -c com.lyh.wc.UnBoundedStreamWordCount FlinkStudy-1.0-SNAPSHOT.jar
1.3、关闭 yarn-session 会话
echo "stop" | ./bin/yarn-session.sh -id application_1699415564762_0001
2、Yarn 单作业模式
2.1、提交作业
在 YARN 环境中,由于有了外部平台做资源调度,所以我们也可以直接向 YARN 提交一个单独的作业,从而启动一个 Flink 集群。
$ bin/flink run -d -t yarn-per-job -c com.atguigu.wc.StreamWordCount FlinkTutorial-1.0-SNAPSHOT.jar
相关文章:
Flink(二)【Flink 部署模式】
前言 今天是Flink学习的第二天,我的心情异常的复杂哈哈哈(苦笑),学习上还是比较顺利的,感情上我并不擅长,所以心情波动大在所难免。害,至少还有学习让我不被各种糟糕琐碎的日常生活里的人和事所…...
在使用ubuntu18.04的时候使用阿里源或者清华源后安装mysql5.7时出现dpkg提示的错误信息
在使用ubuntu18.04的时候使用阿里源或者清华源后安装mysql5.7时出现dpkg提示的错误信息 经过排查发现该问题可能跟本地库依赖文件导致mysql安装不上。 清除刚下载保留的mysql,然后删除、清除在更新本地依赖库。 sudo apt purge mysql* sudo apt autoremove sudo …...
引用(类名后加符号)和指针的区别
它们的区别: ①从现象上看, 指针在运行时可以改变其所指向的值, 而引用一旦和某个对象绑定后就不再改变。 这句话可以理解为: 指针可以被重新赋值以指向另一个不同的对象。 但是引用则总是指向在初始化时被指定的对象&#x…...
如何查看网站的https的数字证书
如题 打开Chrome浏览器,之后输入想要抓取https证书的网址,此处以知乎为例点击浏览器地址栏左侧的锁的按钮,如下图 点击“连接是安全的”选项,如下图 点击“证书有效”选项卡,如下图 查看基本信息和详细信息 点击详细信…...
关于maven读取settings.xml文件的优先级问题
今天在IDEA中配置maven的setting.xml文件路径指向的.m2路径下的setting_a.xml文件,同时,我的maven3.6.3也放在.m2中。 [1] .m2文件夹 [2] apache-maven-3.6.3文件夹 然后,在IDEA中打包发布时发现,无论如何都读取不到指定的setti…...
城市内涝积水监测,万宾科技内涝预警监测系统
每一个城市的排水体系都是一个复杂的网络系统,需要多个部分配合协调,预防城市排水管网带来安全隐患,也因此才能在一定程度上缓解城市内涝带来的安全问题。在海绵城市建设过程中不仅要解决大部分道路硬化导致的积水无法渗透等问题,…...
JavaEE初阶学习:Linux 基本使用和 web 程序部署
1.Linux的基本认识 Linux 是一个操作系统.(搞管理的系统) 和Windows都是同类产品~~ Linux 实际的场景: 1.服务器 2.嵌入式设备 3.移动端(手机)Android 其实就是Linux 1991年,还在读大学的 芬兰人 Linus Benedict Torvalds,搞了一个Linux 这样的系统0.01版,正式发布了~ 后…...
摔杯算法(要求用最少的测试次数找出恰巧会使杯子破碎的楼层。)
题目: 一种杯子,若在第N层被摔破,则在任何比N高的楼层均会破;若在第M层不破,则在任何比M低的楼层均不会破。给你两个这样的杯子,让你在100层高的楼层中测试,要求用最少的测试次数找出恰巧会使杯子破碎的楼层…...
centos7安装docker容器
卸载老版本: $ sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine/var/lib/docker/路径下存在镜像、数据卷、容器等,在卸载的时候是不会自动删除…...
【二叉树】如何构建一个包含大量随机数节点的二叉树测试用例
【二叉树】如何构建一个包含大量随机数节点的二叉树测试用例 前言一、案例准备二、自动生成随机二叉树工具类(TreegenerateUtils)三、如何调用随机二叉树工具类(TreegenerateUtils)? 前言 今天笔者在测试有关二叉树的…...
防火防盗防小人 使用 Jasypt 库来加密配置文件
⚔️ 项目配置信息存放在哪? 在日常开发工作中,我们经常需要使用到各种敏感配置,如数据库密码、各厂商的 SecretId、SecretKey 等敏感信息。 通常情况下,我们会将这些敏感信息明文放到配置文件中,或者放到配置中心中。…...
Spring Cloud学习(二)【Eureka注册中心】
文章目录 Eureka 注册中心Eureka 的作用 动手实践搭建 EurekaServer服务注册服务发现 Ribbon 负载均衡负载均衡原理IRule 接口(负载均衡策略)饥饿加载 Eureka 注册中心 服务调用出现的问题 不能采用硬编码服务消费者该如何获取服务提供者的地址信息&am…...
数据分析实战 | 线性回归——女性身高与体重数据分析
目录 一、数据集及分析对象 二、目的及分析任务 三、方法及工具 四、数据读入 五、数据理解 六、数据准备 七、模型训练 八、模型评价 九、模型调参 十、模型预测 实现回归分析类算法的Python第三方工具包比较常用的有statsmodels、statistics、scikit-learn等&#…...
python回文日期 并输出下一个ABABBABA型回文日期
题目: 输入: 输入包含一个八位整数N,表示日期 对于所有的测评用例,10000101 ≤N≤89991231,保证N是一个合法日期的8位数表示 输出: 输出两行,每行一个八位数。第一行表示下一个回文日期第二…...
Zotero拓展功能之Zotero Style
Zotero Style拓展功能 一、列: 1.简介 首先你必须知道Zotero的基本功能:右键任意一个列的名字,会弹出一个右键菜单,你可以勾选/取消勾选一个列,并且在最后有两个按钮,一个是“列设置”,一个是…...
小程序提交表单之后,清除表单form
构造表单 <form bindsubmit"bindFormSubmit"> <view class"main"><textarea name"textarea" value"{{content}}"></textarea> <button form-type"submit" type"primary" > 提交 &…...
Java程序设计实验5 | Java API应用
*本文是博主对Java各种实验的再整理与详解,除了代码部分和解析部分,一些题目还增加了拓展部分(⭐)。拓展部分不是实验报告中原有的内容,而是博主本人自己的补充,以方便大家额外学习、参考。 (解…...
自媒体项目详述
总体框架 本项目主要着手于获取最新最热新闻资讯,以微服务构架为技术基础搭建校内仅供学生教师使用的校园新媒体app。以文章为主线的核心业务主要分为如下子模块。自媒体模块实现用户创建功能、文章发布功能、素材管理功能。app端用户模块实现文章搜索、文章点赞、…...
客服呼叫中心的语音质检工作
语音质检是呼叫中心运营中必不可缺少的一个环节,呼叫中心语音质检对坐席起着直接监督的作用,也正是这种监督约束推动着客服人员不断提升自身的业务能力。 而客服呼叫中心的质检结果中还蕴藏了大量有价值的信息,可以通过日常的质检工作真正发现…...
深度解密 | 灵脉SAST 3.0最新特性曝光
一、多模智能引擎焕新 2023年6月,灵脉SAST入选国际权威咨询机构Forrester发布的《The Static Application Security Testing Landscape》报告成为全球范围内仅有的两款亚太区SAST代表产品之一。 此次3.0版本重大焕新,灵脉SAST从检测工具的灵魂核心入手…...
Windows更新修复终极指南:一键解决卡顿、失败、错误代码问题
Windows更新修复终极指南:一键解决卡顿、失败、错误代码问题 【免费下载链接】Script-Reset-Windows-Update-Tool This script reset the Windows Update Components. 项目地址: https://gitcode.com/gh_mirrors/sc/Script-Reset-Windows-Update-Tool 还在为…...
知识图谱(BILSTM+CRF项目完整实现、训练结果优化方向(面试))【第八章】
一、训练、评估模型 训练函数基本步骤: 1.构建数据迭代器Dataloader(包括数据处理与构建数据源Dataset) 2.实例化模型 3.实例化损失函数对象 4.实例化优化器对象 5.定义打印日志参数 6.开始训练 6.1 实现外层大循环epoch 6.2 将模型设置为训练模式 6.3 内部…...
【微软内部未公开文档级实践】:.NET 11 + WinML DirectML 2.1双模加速架构,GPU利用率拉升至91.7%?
第一章:.NET 11 AI模型推理加速快速接入全景概览.NET 11 引入了原生 AI 推理加速支持,通过深度集成 ONNX Runtime、ML.NET 增强版及硬件感知调度器(Hardware-Aware Scheduler),显著降低模型加载延迟与推理吞吐瓶颈。开…...
YOLO26 改进、魔改| 通道-空间注意力与密集多尺度特征融合模块CSDF,通过融合通道注意力、空间注意力和多尺度空洞卷积,增强特征表示能力,提升模型对复杂场景下多尺度目标的识别与分割性能。
遥感图像语义分割任务中面临的三大核心挑战:尺度变化剧烈、类间光谱相似性高、以及空间上下文复杂。传统的卷积神经网络虽能提取局部特征,但其感受野有限,难以建模长距离依赖与多尺度目标;而基于Transformer的方法虽能捕获全局信息…...
ssm校园失物招领信息系统小程序(文档+源码)_kaic
第五章 系统实现 5.1用户端功能模块 用户登录,用户通过输入用户名和密码,选择角色并点击登录进行系统登录操作,如图5-1所示。 图5-1用户登录界面图 用户注册,通过填写用户名、密码、姓名、性别、手机、邮箱等信息,输…...
C# OnnxRuntime 部署 DAViD 表面法线估计
目录 效果 模型信息 项目 代码 下载 效果 模型信息 Model Properties ------------------------- metadata:{} --------------------------------------------------------------- Inputs ------------------------- name:input tensor࿱…...
Oxygen氧气17.1.0.131完整包|含教程33讲+实战课7节+强哥专属MI码工具套件(含16.3旧版+视频)
温馨提示:文末有联系方式Oxygen氧气17.1.0.131权威合集 本套资料为当前最新稳定版Oxygen 17.1.0.131的全维度配套,涵盖从入门到进阶所需的全部学习与实战组件,专为移动终端取证工程师、数据恢复技术人员及专业培训机构定制。认证教学体系&…...
5G/6G毫米波设计必看:如何用信道建模参数(RMS时延扩展、K因子)指导你的系统设计?
毫米波信道建模实战:从RMS时延扩展到波束成形的工程决策指南 当28GHz的毫米波信号穿过城市峡谷时,工程师小张发现基站接收到的信号强度波动剧烈——这并非设备故障,而是典型的空间选择性衰落现象。在5G/6G和Wi-Fi 7系统设计中,理解…...
《检验检测机构资质认定管理办法》解读,检测机构资质认定实操指南与合规要点
《检验检测机构资质认定管理办法》是由国家市场监督管理总局制定的部门规章,是检验检测机构资质认定工作的规范性文件,内容涵盖了资质认定条件和程序、技术评审管理、监督检查等方面。本文我们通过对《检验检测机构资质认定管理办法》的解读,…...
别再死记硬背了!用LaTeX和Python搞定希腊字母(附发音与手写体对照表)
别再死记硬背了!用LaTeX和Python搞定希腊字母(附发音与手写体对照表) 理工科写作中,希腊字母就像空气一样无处不在——从薛定谔方程中的ψ到圆周率π,从统计学中的σ到电磁学里的μ。但每次需要输入这些符号时…...
