YARN的调优参数

本文深入探讨YARN的Container概念及调优策略,通过具体案例分析如何合理分配资源,包括memory和vcore,以实现集群资源的最大化利用。特别关注在不同机器性能下,如何通过调整yarn.nodemanager.vmem-pmem-ratio参数来平衡资源分配。
摘要由CSDN通过智能技术生成

                                     YARN的调优参数

一.Container概念

Container我个人理解成一块虚拟的空间,是由menory和vcore一起组成的

vcore这个概念是由yarn提出来的,为了防止在一个集群里面的各个机器的core性能不一致才提出这个概念,这指的是一个虚拟化的core,如果在同一个集群里面一台机器的CPU处理性能很好,但是在整个集群里面还有一台机器的CPU处理性能一般,这样可以通过yarn.nodemanager.vmem-pmem-ratio这个参数设置的,默认是2.1,可以把性能好的机器设置成2.1,性能差一点的机器设置成1.1

二.关于Container调优案例

1.假设生产环境下我的memory是256G,而且我的物理core是32,假设物理core和vore的比例是1:2

2.假设我装的是contos系统使用了1Gmemory,Linux有个机制,会预设15%-20%的内存,默认是先锁住,不可以使用,这是为了防止系统夯住,或者OOM机制事件

3.去掉这个机器上面使用的进程内存,假设只有dn,dn在生产上默认改成2G

4.那我剩下的可使用的内存是256-1-256*0.2-2=201.8,四舍五入202G

此时这台机器上面就剩下202G memory和64个vore

 

5.参考官方文档,发现官方yarn.scheduler.maximum-allocation-vcores这个参数给的是4,说明每个Container容器最好是4个vcore,那么我们就会有16个Container,再进行修改每个Container里面的memory参数

yarn.nodemanager.resource.memory-mb  200G 最大可以使用的memory大小

yarn.scheduler.minimum-allocation-mb    1G  每个Container最小的memory
yarn.scheduler.maximum-allocation-mb   12G  每个Container最大的memory

修改vore参数:

yarn.nodemanager.resource.cpu-vcores      64 最大可以使用的vore数量
yarn.scheduler.minimum-allocation-vcores    1   每个Container最少使用的vore数量          (默认)
yarn.scheduler.maximum-allocation-vcores    4   每个Container最大可以使用的vore数量  (默认)

YARN(Yet Another Resource Negotiator)是Hadoop 2.x中的一个集群资源管理器,它的任务是为集群中的应用程序分配资源,并协调集群中的计算资源。对于YARN集群而言,参数调优是非常重要的,它可以极大地影响集群的性能和稳定性。下面介绍一些常见的YARN参数调优方法: 1. yarn.scheduler.maximum-allocation-mb:该参数定义了YARN管理的每个容器的最大内存大小,默认为8192 MB。可以根据集群内存大小及应用程序内存需求进行调整。 2. yarn.scheduler.minimum-allocation-mb:该参数定义了YARN管理的每个容器的最小内存大小,默认为1024 MB。可以根据应用程序内存需求进行调整。 3. yarn.nodemanager.resource.memory-mb:该参数定义了每个节点管理器可以使用的最大内存大小,默认为8192 MB。可以根据节点物理内存大小进行调整。 4. yarn.nodemanager.resource.cpu-vcores:该参数定义了每个节点管理器可以使用的最大CPU核心数,默认为8个。可以根据节点CPU核心数进行调整。 5. yarn.scheduler.minimum-allocation-vcores:该参数定义了YARN管理的每个容器的最小CPU核心数,默认为1个。可以根据应用程序CPU需求进行调整。 6. yarn.scheduler.maximum-allocation-vcores:该参数定义了YARN管理的每个容器的最大CPU核心数,默认为32个。可以根据集群CPU核心数进行调整。 7. yarn.nodemanager.local-dirs和yarn.nodemanager.log-dirs:这两个参数定义了节点管理器的本地目录和日志目录。可以根据节点磁盘空间大小和性能进行调整。 8. yarn.nodemanager.delete.debug-delay-sec:该参数定义了节点管理器在删除容器后等待的时间,默认为0秒。可以根据节点磁盘空间大小和性能进行调整。 9. yarn.application.max-attempts:该参数定义了应用程序失败后最大的重试次数,默认为2次。可以根据应用程序的重要性进行调整。 10. yarn.nodemanager.vmem-check-enabled:该参数定义了节点管理器是否启用虚拟内存检查,默认为true。可以根据应用程序的内存特性进行调整。 总之,不同的YARN集群需要根据自身的硬件配置和应用程序需求进行参数调优,以达到最佳的性能和稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值