总结: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插件 …...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...
循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...
Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...
基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...
安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲
文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...
快刀集(1): 一刀斩断视频片头广告
一刀流:用一个简单脚本,秒杀视频片头广告,还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农,平时写代码之余看看电影、补补片,是再正常不过的事。 电影嘛,要沉浸,…...
