|NO.Z.00062|——————————|BigDataEnd|——|Hadoop&MapReduce.V33|——|Hadoop.v33|调优及二次开发|YARN调优|
一、YARN调优
### --- NM配置
~~~ 可用内存
~~~ 刨除分配给操作系统、其他服务的内存外,剩余的资源应尽量分配给YARN。
~~~ 默认情况下,Map或Reduce container会使用1个虚拟CPU内核和1024MB内存,
~~~ ApplicationMaster使用1536MB内存。
yarn.nodemanager.resource.memory-mb // 默认是8192
### --- CPU虚拟核数
~~~ 建议将此配置设定在逻辑核数的1.5~2倍之间。如果CPU的计算能力要求不高,
~~~ 可以配置为2倍的逻辑CPU。
~~~ 该节点上YARN可使用的虚拟CPU个数,默认是8。
~~~ 目前推荐将该值设值为逻辑CPU核数的1.5~2倍之间
yarn.nodemanager.resource.cpu-vcores
二、Container启动模式
### --- Container启动模式
~~~ YARN的NodeManager提供2种Container的启动模式。
~~~ 默认,YARN为每一个Container启动一个JVM,JVM进程间不能实现资源共享,
~~~ 导致资源本地化的时间开销较大。针对启动时间较长的问题,
~~~ 新增了基于线程资源本地化启动模式,能够有效提升container启动效率。
~~~ 设置为“org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor”,
~~~ 则每次启动container将会启动一个线程来实现资源本地化。
~~~ 该模式下,启动时间较短,但无法做到资源(CPU、内存)隔离。
~~~ 设置为“org.apache.hadoop.yarn.server.nodemanager.LinuxContainerExecutor” ,
~~~ 则每次启动container都会启动一个JVM进程来实现资源本地化。
~~~ 该模式下,启动时间较长,但可以提供较好的资源(CPU、内存)隔离能力。
yarn.nodemanager.container-executor.class
### --- AM调优
~~~ 运行的一个大任务,map总数达到了上万的规模,任务失败,
~~~ 发现是ApplicationMaster(以下简称AM)反应缓慢,最终超时失败。
~~~ 失败原因是Task数量变多时,AM管理的对象也线性增长,因此就需要更多的内存来管理。
~~~ AM默认分配的内存大小是1.5GB。
### --- 建议:
~~~ 任务数量多时增大AM内存
yarn.app.mapreduce.am.resource.mb
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」