|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

 

posted on 2022-04-07 14:22  yanqi_vip  阅读(27)  评论(0)    收藏  举报

导航