问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Yarn下MapReduce部分参数理解

发布网友 发布时间:2022-12-17 00:47

我来回答

1个回答

热心网友 时间:2023-09-12 13:07

部分原文来自 support.pivotal.io 的翻译,对于该篇文章中感觉概念模糊不清的地方我做了修正,并扩充了我自己的部分理解,有不正确的地方还望大家指正

Yarn Container就是一个yarn的java进程(这里容易被误解成类似Linux Container的概念),在Maprece中的AM,MapTask,ReceTask, spark的driver和executor等等都作为Container在Yarn的框架上执行,你可以在RM的网页上看到Container的状态。

从上面的图可以看出map,rece,AM container的JVM,“JVM”矩形代表服务进程,“Max heap”,“Max virtual”矩形代表NodeManager对JVM进程的最大内存和虚拟内存的*。

以map container内存分配(“maprece.map.memory.mb“)设置为1536M为例,AM将会为container向RM请求2048mb的内存资源(原因见上)。这是一种逻辑上的分配,这个值被NodeManager用来监控改进程内存资源的使用率,如果Task进程树(包括task启动子进程占用的内存,这样可以解决hadoop streaming任务内存跑飞的情况,实际上是对内存使用的一种软*,至于为什么没有使用Cgroups做*,大家可以自行查阅资料)的使用超过了2048MB,NM将会把这个task给杀掉。

maprece.map.java.opts和maprece.map.memory.mb区别:JVM进程跑在container中, maprece.{map|rece}.java.opts能够通过Xmx设置JVM最大的heap的使用,一般设置为0.75倍的 maprece.{map|rece}.memory.mb ,因为需要为java code,非JVM内存使用等预留些空间,同理:spark executor在申请内存是也会为堆外内存预留一些空间,参数由 spark.yarn.executor.memoryOverhead 控制,算法为 max(384m, 0.07*spark.executor.memory) **

当一个maprece job完成时,你将会看到一系列的计数器被打印出来,下面的三个计数器展示了多少物理内存和虚拟内存被分配

默认的(“yarn.nodemanager.vmem-pmem-ratio“)设置为2.1,意味则map container或者rece container分配的虚拟内存超过2.1倍的(“maprece.rece.memory.mb“)或(“maprece.map.memory.mb“)就会被NM给KILL掉,如果 (“maprece.map.memory.mb”) 被设置为1536M那么总的虚拟内存为2.1*1536=3225.6MB

当container的内存超出要求的,log将会打印一下信息

在 3.2 中,提到 yarn.scheler.increment-allocation-mb参数用于控制container内存增量,如果需要更细粒度控制container内存增量,则需要修改该参数,那么接写来分析一下这个参数如何工作的

先看下该参数在FairSchelerConfiguration.java中的定义(顺带上cpu增量)

FairScheler.java中 initScheler 方法中,初始化了一个incrAllocation对象,表明资源使用的增量

在具体FairScheler#allocate方法中使用(allocate是每次资源分配过程中入口方法,在此不再赘述,有兴趣的同学自己可以下来看源码)

接下来,我们看下在Sanity check中发生了什么

看注释,实际上normalizeRequests方法对申请的资源进行了一个检查。

我们看到最终调用了normalizeRequest方法,再往下追,最终发现调用到ResourceCalculator#normalize方法,ResourceCalculator实例对象为DominantResourceCalculator(参见allocate方法)

其中stepFactor对象为之前提到的incrAllocation对象,所以可以看出,在这里进行了一个计算资源请求的操作。

至此,这篇分析文章就要结束了,期间涉及到的一些细节并没有赘述,有兴趣的同学可以查阅源码做更深入的了解。

下篇文章,内容预告:

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
Linux系统安装FTP服务器 Linux系统的网络文件共享 建筑的七盏明灯的内容简介 面向对象设计七大原则 简单说 交互设计七大定律 交互设计的“根”——七大定律 交互设计原则和理论2——七大定律 七大设计原则 附近的加油站有哪些 附近的加油站有哪些地方 哈尔滨哪有卖最大号档案袋? 西游神传(GM无限刷宠技)手游代理好做吗? 西游神传(GM无限刷宠技)手游代理? 您好,我想向您咨询一些游戏脚本类的知识,方便留联系方式吗? 七天学伴点击横屏是变成横屏还是竖屏 transCAD中划分交通小区的依据是什么 求指点 transCAD中交通分配为什么围绕交通小区分配的,而不是沿着路网分布? 如何用TransCAD划分交通小区 南京市伍佰村的来历简介和历史 三国孙吴宗室的墓地,跨越三省却不是集中于一处,这是为何? 美容店里放什么花,最好开花香味好 毛笔中分为狼毫 羊毫 白云 具体的区别是什么 奶油蛋糕具体做法,在家庭自己可以轻易做出来的 装机模拟器2更改工作台设置 装机模拟器2蓝屏硬件错误 3000瓦激光器波长 想买一台3000瓦6025的激光切割机,也咨询过几个厂的业务员,搞蒙了,是买进口激 孩子宁愿挨打也不写作业怎么办 孩子宁愿挨打也不写作业怎么处理 asp.net2.0是什么东西? asp.net 2.0设置问题,无法显示aspx页面内容 YARN开启Debug模式 纯电动200马力相当于汽油车多大排量 《艳色撩君来洞房》txt全集下载 莫道未撩君心醉的txt全集下载地址 爆笑穿越:剿剿匪,撩夫君_by柃杉_txt全文阅读,百度网盘免费下载 电瓶车一块电瓶12V两块电瓶多少伏? 两块120的电瓶合起来是多少安 请问做10多层楼的抗震分析是用迈达斯哪个分类比较好?是CIVIL还是GEN还是BUILDING?求高手指点!谢谢! midas building如何统一单元局部坐标系 迈达斯背景调成白色 斑马鱼几月生娃? 斑马鱼冬天产卵吗,产卵的注意事项 斑马鱼什么时候产卵,产卵需要多久 Bootstraptable筛选 结婚房间布置图片欣赏 婚房怎样布置才浪漫 斑马鱼怎么产卵,什么时候产卵 婚房床上布置图片2017款 布置婚床时这几样不能少 吃梅精有什么好处? 失业补助金没到帐怎么办,在哪里查失业补助金 哪里有马小乐电子书可以下载、