YARN线上动态资源调优

背景

在线集群资源严重不足。可能会有添加磁盘、添加CPU、添加节点等操作。添加这些硬件资源后,我们的集群无法立即使用这些资源,需要修改集群的Yarn资源配置。 ,然后使其生效。

现有环境

服务器:12,内存=768G,物理=192,磁盘=144T

组件:-2.7.7,Hive-2.3.4,-220,-1.3.6,Sqoop- 1.4.7

分配政策

因为我们的版本是-2.7.7,一些默认配置是固定值,比如8G可用内存,8个可用CPU核心,如果调优需要我们配置更多。

官方 Yarn 参数配置:

未来版本(-3.0+)其实有自动检测硬件资源的机制,需要开启配置:yarn…–,然后自动计算资源配置,但是这个默认是禁用的,每个节点的可用内存配置yarn…-mb和CPU核数yarn…cpu-也会受到这个配置的影响。默认配置为-1,则可用内存为8G,CPU核数为8核。如果开启了对硬件资源的自动监控,其他配置无需配置即可忽略,简化了配置。

官方 Yarn 参数配置:

还有一个重要的配置 yarn..vmem-pmem-ratio ,意思是当服务器上的物理内存不足时,可以使用虚拟内存。默认是2.物理内存的1倍。

修改配置yarn-site.xml

修改yarn-site.xml,有则修改,没有则添加,这里我们设置单个节点的可用内存为30G,可用CPU核数为16个


    yarn.nodemanager.resource.memory-mb
    30720
    每个节点可用内存,默认8192M(8G),这里设置30G


    yarn.scheduler.minimum-allocation-mb
    1024
    单个任务可申请最少内存,默认1024MB


    yarn.scheduler.maximum-allocation-mb
    20480
    单个任务可申请最大内存,默认8192M(8G),这里设置20G


    yarn.app.mapreduce.am.resource.mb
    2048
    默认为1536。MR运行于YARN上时,为AM分配多少内存。默认值通常来说过小,建议设置为2048或4096等较大的值。


    yarn.nodemanager.resource.cpu-vcores
    16
    默认为8。每个节点可分配多少虚拟核给YARN使用,通常设为该节点定义的总虚拟核数即可。


    yarn.scheduler.maximum-allocation-vcores
    32
    分别为1/32,指定RM可以为每个container分配的最小/最大虚拟核数,低 于或高于该限制的核申请,会按最小或最大核数来进行分配。默认值适合 一般集群使用。


    yarn.scheduler.minimum-allocation-vcores
    1
    分别为1/32,指定RM可以为每个container分配的最小/最大虚拟核数,低 于或高于该限制的核申请,会按最小或最大核数来进行分配。默认值适合 一般集>群使用。


  yarn.nodemanager.vcores-pcores-ratio
  2
  每使用一个物理cpu,可以使用的虚拟cpu的比例,默认为2

​

  yarn.nodemanager.vmem-pmem-ratio
  5.2
  物理内存不足时,使用的虚拟内存,默认是2.1,表示每使用1MB的物理内存,最多可以使用2.1MB的虚拟内存总量。

-site.xml

修改-site.xml,有则修改,无则添加

为单个任务设置内存资源,注意这里的值不能大于yarn..–mb上面对应的内存


    mapreduce.map.memory.mb
    2048
    默认均为1024,调度器为每个map/reduce task申请的内存数。各Job也可以单独指定。


    mapreduce.reduce.memory.mb
    2048
    默认均为1024,调度器为每个map/reduce task申请的内存数。各Job也可以单独指定。

集群有效分布

修改配置后,一定要将配置分发到其他集群节点,使用scp或xsync工具分发到其他节点,这里以分发到一个节点为例

cd /data/soft//-2.7.7/etc/

scp -r yarn-site.xml -site.xml :`pwd`

动态重启

为了不影响集群的使用,我们分别启动和停止Yarn。 Yarn 的服务主要有两个and,单独的启动和停止命令

yarn-.sh 停止 yarn-.sh 开始

yarn-.sh 停止 yarn-.sh 开始

根据集群节点一一执行以上命令,对应的节点执行对应的命令。通过这种方式,我们确保了集群资源的动态调优。

当然,如果单次重启比较麻烦,也可以执行Yarn的重启命令

stop-yarn.sh start-yarn.sh

对应的从节点可以独立启动和停止。

更多信息请在公众号平台搜索:玩家一号,本文编号:2004,回复即可获取。

© 版权声明
THE END
喜欢就支持一下吧
点赞5赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容