总结:Yarn资源管理
一、介绍
本文梳理下Yarn的资源分配计算逻辑。
二、配置 - 资源限制
1、配置NodeManager可分配的资源池的总量
<property><name>yarn.nodemanager.resource.memory-mb</name><value>4096</value>
</property>
-
作用对象:节点管理器(NodeManager)。
-
含义:这个配置项定义了每个节点管理器可以使用的最大内存量(以 MB 为单位)。
-
值:
4096
表示每个节点管理器可以使用的最大内存量为 4096 MB(即 4 GB)。 -
作用:这个配置项限制了节点管理器可以分配给容器的总内存量。换句话说,它决定了节点管理器所在机器上所有容器可以使用的内存总量。
同理:
<property><name>yarn.nodemanager.resource.cpu-vcores</name><value>4</value>
</property>
2、配置容器可配分配的最小和最大的资源量
<property><name>yarn.scheduler.minimum-allocation-mb</name><value>1024</value>
</property>
-
作用对象:资源管理器(ResourceManager)。
-
含义:这个配置项定义了资源管理器在分配内存时,每个容器(Container)的最小内存分配量(以 MB 为单位)。
-
值:
1024
表示每个容器至少分配 1024 MB(即 1 GB)的内存。 -
作用:这个配置项确保了每个容器至少有 1 GB 的内存可用。它决定了资源管理器在分配内存时,不能分配小于这个值的内存给容器。
同理:
<property><name>yarn.scheduler.maximum-allocation-mb</name><value>6144</value>
</property>
<property><name>yarn.scheduler.minimum-allocation-vcores</name><value>1</value>
</property>
<property><name>yarn.scheduler.maximum-allocation-vcores</name><value>16</value>
</property>
注意:我们尽量设置yarn.scheduler.maximum-allocation-mb小于yarn.nodemanager.resource.memory-mb。
- 以确保节点管理器有足够的内存资源来满足单个容器的最大内存请求。
三、Flink任务资源分配与Yarn资源限制的关系
如果Flink任务以per job cluster方式在yarn上运行,那么Flink任务分配的资源和Yarn上面配置的资源限制是什么关系?举个例子说明
在 Flink 以 per-job cluster 方式在 YARN 上运行时,Flink 任务的资源分配和 YARN 上的资源限制之间存在密切的关系。具体来说,Flink 任务的资源需求会受到 YARN 配置的资源限制的影响。下面通过一个具体的例子来说明这种关系。
示例场景
假设你有一个 YARN 集群,配置如下:
<!-- YARN 配置 -->
<property><name>yarn.nodemanager.resource.memory-mb</name><value>8192</value>
</property>
<property><name>yarn.nodemanager.resource.cpu-vcores</name><value>8</value>
</property><property><name>yarn.scheduler.minimum-allocation-mb</name><value>1024</value>
</property>
<property><name>yarn.scheduler.maximum-allocation-mb</name><value>6144</value>
</property><property><name>yarn.scheduler.minimum-allocation-vcores</name><value>1</value>
</property>
<property><name>yarn.scheduler.maximum-allocation-vcores</name><value>4</value>
</property>
Flink 任务配置
假设你提交一个 Flink 任务,配置如下:
flink run -m yarn-cluster -yn 2 -ytm 3072 -yjm 1024 -ys 2 -c com.example.MyFlinkJob /path/to/my-flink-job.jar
-
-yn 2
:指定 YARN 集群中启动 2 个 TaskManager。 -
-ytm 3072
:每个 TaskManager 分配 3072 MB 内存。 -
-yjm 1024
:JobManager 分配 1024 MB 内存。 -
-ys 2
:每个 TaskManager 分配 2 个 CPU 核。
资源分配关系
1. 内存分配
-
YARN 配置:
-
yarn.nodemanager.resource.memory-mb
:每个节点管理器最大可用内存为 8192 MB(8 GB)。 -
yarn.scheduler.minimum-allocation-mb
:每个容器最小分配内存为 1024 MB(1 GB)。 -
yarn.scheduler.maximum-allocation-mb
:每个容器最大分配内存为 6144 MB(6 GB)。
-
-
Flink 任务配置:
-
JobManager 内存:1024 MB。
-
每个 TaskManager 内存:3072 MB。
-
总共需要的内存:1024 MB (JobManager) + 2 * 3072 MB (TaskManagers) = 7168 MB。
-
-
关系:
-
Flink 任务总共需要 7168 MB 内存,这小于 YARN 配置的
yarn.nodemanager.resource.memory-mb
(8192 MB),因此单个节点管理器可以满足 Flink 任务的内存需求。 -
每个 TaskManager 请求的内存为 3072 MB,这小于 YARN 的
-
相关文章:
总结:Yarn资源管理
一、介绍 本文梳理下Yarn的资源分配计算逻辑。 二、配置 - 资源限制 1、配置NodeManager可分配的资源池的总量 <property><name>yarn.nodemanager.resource.memory-mb</name><value>4096</value> </property> 作用对象:节点管理器(No…...

Python学习34天
import random class Game: peo0 rob0 # # def __init__(self,peo,rob): # self.peopeo # self.robrob def Play(self): """ 石头剪刀布游戏,0代表石头,1代见到,2代表石头 …...

深入浅出 WebSocket:构建实时数据大屏的高级实践
简介 请参考下方,学习入门操作 基于 Flask 和 Socket.IO 的 WebSocket 实时数据更新实现 在当今数字化时代,实时性是衡量互联网应用的重要指标之一。无论是股票交易、在线游戏,还是实时监控大屏,WebSocket 已成为实现高效、双向…...

三开关VUE组件
一、使用效果 <template><QqThreeSwitch v-model"value" /><!-- <SqThreeSwitch v-model"value" :options"[test1, test2, test3]"><template #left-action><div style"display: flex"><IconMoon…...

SpringCloud+SpringCloudAlibaba学习笔记
SpringCloud 服务注册中心 eureka ap 高可用 分布式容错 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> <dependency><groupId…...
牛客小白月赛105(A~E)
文章目录 A lz的吃饭问题思路code B lz的数字问题思路code C lz的蛋挞问题思路code D lz的染色问题思路code E lz的括号问题思路code 总结 牛客小白月赛105 A lz的吃饭问题 思路 签到题,比较大小即可 code void solve(){int a,b,c,d;cin >> a >> b…...
OSPF协议整理
OSPF(Open Shortest Path First)即开放式最短路径优先协议,是一种广泛应用于大型网络中的链路状态路由协议。 OSPF 的基本概念 OSPF 是基于链路状态算法的内部网关协议(IGP),用于在一个自治系统ÿ…...
Java中的多线程
文章目录 Java中的多线程一、引言二、多线程的创建和启动1、继承Thread类2、实现Runnable接口 三、线程的常用方法1、currentThread()和getName()2、sleep()和yield()3、join() 四、线程优先级五、使用示例六、总结 Java中的多线程 一、引言 在Java中,多线程编程是…...

什么是聚簇索引、非聚簇索引、回表查询
其实聚集索引也叫聚簇索引,二级索引也叫非聚簇索引,大家不要认为这是不同的两个知识点。 定义 先看一下数据库的索引介绍。 聚簇索引 1. 如果存在主键(一般都存在),主键索引就是聚簇索引。 2. 如果不存在,…...
探索 Spring 框架核心组件:构建强大 Java 应用的基石
Spring框架作为Java企业级开发的首选框架之一,其强大的功能和灵活的架构深受开发者喜爱。Spring框架的核心组件共同构建了一个高效、可扩展的应用程序开发平台。本文将深入探讨Spring框架的核心组件,揭示它们如何在Spring框架中发挥关键作用。 一、Bean…...

Android 13 Aosp 默认允许应用动态权限
图库 frameworks/base/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java 修改 public void grantDefaultPermissions(int userId) {DelayingPackageManagerCache pm new DelayingPackageManagerCache();grantPermissionsToSysCompon…...

【C++知识总结1】c++第一篇,简单了解一下命名空间是什么
一、C的由来 C语言是一种结构化和模块化的编程语言,它对于处理较小规模的程序非常适用。然而,当面临需要高度抽象和建模的复杂问题,以及规模较大的程序时,C语言就显得不那么合适了。为了应对这种挑战,并在解决软件危机…...

从0开始深度学习(32)——循环神经网络的从零开始实现
本章将从零开始,基于循环神经网络实现字符级语言模型(不是单词级) 首先我们把从0开始深度学习(30)——语言模型和数据集中的load_corpus_time_machine()函数进行引用,用于导入数据: train_iter…...

GitLab使用操作v1.0
1.前置条件 Gitlab 项目地址:http://******/req Gitlab账户信息:例如 001/******自己的分支名称:例如 001-master(注:master只有项目创建者有权限更新,我们只能更新自己分支,然后创建合并请求&…...

cuda conda yolov11 环境搭建
优雅的 yolo v11 标注工具 AutoLabel Conda环境直接识别训练 nvidia-smi 检查CUDA版本 下载nvidia cudnn对应的版本 将cuDNN压缩包内对应的文件复制到本地bin、include、lib的文件夹中 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.6 miniConda快速开始-安装 执行…...

解决SpringBoot连接Websocket报:请求路径 404 No static resource websocket.
问题发现 最近在工作中用到了WebSocket进行前后端的消息通信,后端代码编写完后,测试一下是否连接成功,发现报No static resource websocket.,看这个错貌似将接口变成了静态资源来访问了,第一时间觉得是端点没有注册成…...

element-plus的组件数据配置化封装 - table
目录 一、封装的table、table-column组件以及相关ts类型的定义 1、ATable组件的封装 - index.ts 2、ATableColumn组件的封装 - ATableColumn.ts 3、ATable、ATableColumn类型 - interface.ts 二、ATable、ATableColumn组件的使用 三、相关属性、方法的使用以及相关说明 1. C…...

【二维动态规划:交错字符串】
介绍 编程语言:Java 本篇介绍一道比较经典的二维动态规划题。 交错字符串 主要说明几点: 为什么双指针解不了?为什么是二维动态规划?根据题意分析处转移方程。严格位置依赖和空间压缩优化。 题目介绍 题意有点抽象,…...
goframe开发一个企业网站 MongoDB 完整工具包18
1. MongoDB 工具包完整实现 (mongodb.go) package mongodbimport ("context""fmt""time""github.com/gogf/gf/v2/frame/g""go.mongodb.org/mongo-driver/mongo""go.mongodb.org/mongo-driver/mongo/options" )va…...
在vue中,根据后端接口返回的文件流实现word文件弹窗预览
需求 弹窗预览word文件,因浏览器无法直接根据blob路径直接预览word文件,所以需要利用插件实现。 解决方案 利用docx-preview实现word文件弹窗预览,以node版本16.21.3和docx-preview版本0.1.8为例 具体实现步骤 1、安装docx-preview插件 …...

MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...

基于Java+VUE+MariaDB实现(Web)仿小米商城
仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意:运行前…...

c++第七天 继承与派生2
这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分:派生类构造函数与析构函数 当创建一个派生类对象时,基类成员是如何初始化的? 1.当派生类对象创建的时候,基类成员的初始化顺序 …...

Axure 下拉框联动
实现选省、选完省之后选对应省份下的市区...

Vue3 PC端 UI组件库我更推荐Naive UI
一、Vue3生态现状与UI库选择的重要性 随着Vue3的稳定发布和Composition API的广泛采用,前端开发者面临着UI组件库的重新选择。一个好的UI库不仅能提升开发效率,还能确保项目的长期可维护性。本文将对比三大主流Vue3 UI库(Naive UI、Element …...
【java】【服务器】线程上下文丢失 是指什么
目录 ■前言 ■正文开始 线程上下文的核心组成部分 为什么会出现上下文丢失? 直观示例说明 为什么上下文如此重要? 解决上下文丢失的关键 总结 ■如果我想在servlet中使用线程,代码应该如何实现 推荐方案:使用 ManagedE…...
深入解析 ReentrantLock:原理、公平锁与非公平锁的较量
ReentrantLock 是 Java 中 java.util.concurrent.locks 包下的一个重要类,用于实现线程同步,支持可重入性,并且可以选择公平锁或非公平锁的实现方式。下面将详细介绍 ReentrantLock 的实现原理以及公平锁和非公平锁的区别。 ReentrantLock 实现原理 基本架构 ReentrantLo…...