yarn-资源管理container容器配置详解

开题引文:

yarn是hadoop2.x引入的概念,hadoop1.x这个工作是MapReduce做的,在2.x引入了yarn,yarn是用来做资源管理和任务调度,本文详细介绍了yarn在生产上如何资源管理,即yarn的container容器.

1,相关介绍

内存:电脑cpu处理数据是不能直接从硬盘调用的,就好像我们的大脑从神经元之中读取记忆要通过长长的神经,内存条就承接啦电脑cpu于硬盘之间的数据交换所以内存条的好坏也很大程度决定了电脑处理速度的快慢。

显卡:这个部件相信大部分游戏玩家都相当了解,显卡就是负责将电脑的信号转变成图像显示,打游戏主要就是看画面,所以显卡的好坏直接决定啦一台电脑的游戏性能。

CPU:中央处理器,cpu是电脑最主要的部件,当然也是最贵的部分!cpu对于我们人体来说就好像我们的大脑,它是电脑处理各种文件程序的核心部件,它的快慢直接决定啦电脑的运行的快慢。

三者介绍取自百度百科,一定要看一下,然后下面理解起来就很好理解了

2,yarn的container容器是什么?

yarn的container容器是yarn虚拟出来的一个东西,属于虚拟化的,它是由memory+vcore组成,是专门用来运行任务的

vcore:yarn虚拟化出来的东西,一个物理cpu(电脑真实cpu)=2个vcore,可以在yarn的参数里面设置
这个概念是yarn自己发明创建的,自己引入,设计的初衷是考虑不同机器,不同服务器cpu性能不一样,每个cpu计算能力不一样,比如某个物理cpu是另外一个物理cpu的两倍计算能力,
这时通过设计第一个计算能力强的物理cpu虚拟一点core给这个能力不行的cpu,弥补差异,相当于计算时候,把这个牛皮的cpu划分一点虚拟core出来,帮助这个不牛皮cpu干点活,但是呢,这个是理想
实际情况下,yarn并没有实现上面这样,变成大家都是用虚拟core,默认值一般都是2,就是一个物理cpu的core对应2个虚拟的core,一般不会修改这个参数配置

3,生产上面参数设置

服务器,内存128G,16物理core
首先装完系统之后,linux系统会占用1G左右内存,而且生产上面你一定要预留大概20%的内存左右,这20%内存包括这1G内存

为什么要预留20%内存呢?
1,防止出现OOM-KILL机制
oom-kill机制简单可以理解成比如内存128G,你一段时间运行任务内存超出这个128G,linux就会自动帮你kill掉一些任务,减少内存的消耗,从而实现对内存条的保护
oom-kill机制可以关掉,但是不建议关闭,因为这个linux系统对内存的保护
2,防止linux系统夯住
3,给未来部署新的软件留出空余
也就是128*20%约等于26G
还剩下102G可以用来操作

4,DataNode和nodemanager进程本身占用内存

生产上面DataNode自己本身配置内存2G左右就可以了,这里说的是DataNode进程自己本身需要的内存是2G左右,我刚来公司,我同事他们配置的DataNode的内存有的给他6G,其实没有用,因为我在生产上面已经多次观察过,DataNode的这个进程耗费也就在1G多一点的进程,所以2G足够,因为DataNode耗费的内存收到他的磁盘IO影响,他的磁盘IO速度是有限的,所以你给他再多的内存没有意义

生产上面nodemanager进程一般给他4G左右就可以了,

所以还剩下102-2-4=96G内存,这个96G内存就是我们的container容器的内存了,也就是干活的内存

5,容器container的内存相关参数配置

上面计算完了剩余可用内存是96G

yarn.nodemanager.resource.memory-mb
上面指的是yarn的所有container容器能够使用的总内存

yarn.scheduler.minimum-allocation-mb
上面指的是单个container容器能够分配的最小内存

yarn.scheduler.maximum-allocation-mb
上面指的是单个container容器能够分配的最大内存

6,容器container的cpu相关参数配置

yarn.nodemanager.resource.pcores-vcores-multiplier
这个指的是虚拟cpu和物理cpu之间的比例,默认一个物理cpu=2个虚拟cpu

yarn.nodemanager.resource.cpu-vcores
上面指的是最大虚拟CPU的使用数量,物理16core=32vcore

yarn.scheduler.minimum-allocation-vcores
上面指的是单个container容器能够占用最小vcore数量

yarn.scheduler.maximum-allocation-vcores
上面指的是单个container容器能够占用的做大vcore数量

7,极限平衡值

通过上面介绍的7个关于内存和core的参数,但是此刻你肯定会有疑问,那么如何才能让单个container容器使用的内存和vcore达到一个相对平衡的状态,即一个container把一个小任务跑完了,耗费的内存不是很大,然后耗费的vcore也不是很多,而不是出现耗费vcore很多而内存很小,或者内存很大,vcore很少的情况,这个就是我们想寻找的极限平衡值

这个极限平衡值是是需要找打一个突破口,这个突破口就是下面这个参数的配置
yarn.scheduler.maximum-allocation-vcores

cdh官方经过长期的大浪的实践,给出了一个平衡值,这个值很权威,是cdh官方多次测试结果.上面这个参数值<=5,所以我在实际生产项目设置为4,在生产上面能够完美运行.

8,极限平衡值下参数设置

上面机器剩余的102G和16核为例

vcore数量配置
yarn.nodemanager.resource.cpu-vcores 32
yarn.scheduler.minimum-allocation-vcores 1
yarn.scheduler.maximum-allocation-vcores 4
上面三个参数设置完成之后,意思是16核都用来做vcore,单个container容器能够使用的最小vcore数量=1,最大vcore=4,即容器的数量可以使8-32个.

内存大小配置
因为上面vcore数量我们已经按照官方权威测试配置,内存也是作出相关配置,也保障最少的容器数量也是8个,即96/8=12,即但个容器配置的最大内存数量为12G
yarn.nodemanager.resource.memory-mb 96G
yarn.scheduler.minimum-allocation-mb 1G
yarn.scheduler.maximum-allocation-mb 12G 极限情况下,是只有8个container容器

但是实际情况下,单个container容器数量12G有点大了,你想想你的电脑内存才多大,我一般生产上面设置8G就够了,不过设置12G也是没有任何毛病的.

9,参数补充

yarn.nodemanager.pmem-check-enabled true
生产设置为true pmem指的是默认检查物理内存,容器使用的物理内存不能超过我们限定的内存大小,因为我们上面设置了所有容器能够使用的最大内存数量,超出这个内存限制,任务就会被kil掉.比如yarn查看资源还剩下2个G能用,但是任务申请了3个G内存,肯定超出了
yarn.nodemanager.vmem-check-enabled true
生产设置为true vmem指的是默认检查虚拟内存,容器使用的虚拟内存不能超过我们设置的虚拟内存大小
yarn.nodemanager.vmem-pmem-ratio 2.1
物理内存和虚拟内存的比例是2.1:1,也就是1G物理内存对应的2.1G得虚拟内存

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,036评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,046评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,411评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,622评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,661评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,521评论 1 304
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,288评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,200评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,644评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,837评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,953评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,673评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,281评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,889评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,011评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,119评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,901评论 2 355

推荐阅读更多精彩内容

  • 我司生产环境的大数据集群是用CDH部署的 版本有5.11.1 5.14.1 5.16.1 这三个版本. 这里主...
    guaren2009阅读 4,137评论 0 3
  • 前言: 上节课我们讲了 MR job的提交YARN的工作流程 与 YARN的架构,本次课程详细讲讲YARN,多多总...
    ly稻草阅读 4,802评论 0 5
  • 下面是Yarn的知识体系图,这篇文章会介绍所有涉及的知识点。 一、MRv1的架构和缺陷 Apache Hadoop...
    木草zhg阅读 861评论 0 0
  • 1: yarn 资源调度的定义 2: yarn 资源调度的种类 在Yarn中有三种调度器可以选择:FIFO Sch...
    星星之火在心中阅读 3,064评论 0 0
  • Year的资源管理模型 在实际系统中,资源本身是多维度的,包括CPU、内存、网络I/O和磁盘I/O等,因此,如果想...
    Shawn999阅读 717评论 0 0