参考文档:

https://zhuanlan.zhihu.com/p/69703968

 

每节点管理器总的cpu核数 (           整个yarn资源池核数=node数 * 此参数
yarn.nodemanager.resource.cpu-vcores

一般设置等于:节点cpu总核数-节点运行的应用服务数(一般每个服务一个,系统给2个,6个左右)

 

ApplicationMaster 分配的CPU 核数
yarn.app.mapreduce.am.resource.cpu-vcores

Map 任务分配的CPU核数
mapreduce.map.cpu.vcores

容器最小分配CPU数,默认是1
yarn.scheduler.minimum-allocation-vcores

容器增加CPU,单次可以增量
yarn.scheduler.increment-allocation-vcores。 

容器最大可申请 CPU 核数。默认值1,修改为2个。匹配FLINK task manager分配的slot即vcore默认为2
yarn.scheduler.maximum-allocation-vcores

 

每节点管理器 总的内存数量                    整个yarn资源池=node数*此参数
yarn.nodemanager.resource.memory-mb   
 一般20%留给系统服务 , 80%左右给yarn

        
                 
ApplicationMaster分配的内存大小
yarn.app.mapreduce.am.resource.mb    1024 

 

单容器最小分配内存量
yarn.scheduler.minimum-allocation-mb    1024  

没有特殊,此参数指定容器运行的最少分配的内存。  MAP/reduce参数小于此值,以此值为准,按增量单位补。 

单各容器最大分配内存量
yarn.scheduler.maximum-allocation-mb = 10355               

此值可以设置很大(不超过节点内存即可),作为限制单个容器的最大内存使用量。

注:应用在运行申请内存时不能超过最大值。 大部分情况下 mapreduce.reduce.memory.mb 和yarn.scheduler.minimum-allocation-mb来确定分配大小。

如果在HIVE ETL 头部或MapReduce代码中,也可以动态设定任务的申请资源,但最大不能超过此值。 

 eg:hive ETL           set  mapreduce.reduce.memory.mb

Hive提供三种可以改变环境变量的方法,分别是:(1)、修改${HIVE_HOME}/conf/hive-site.xml配置文件;(2)、命令行参数;(3)、在已经进入cli时进行参数声明(优先级最高)。 

上述3中设置参数优先级依次增高。

 

 

容器内存不够时,每次增量
yarn.scheduler.increment-allocation-mb = 512

 

MapReduce参数:

mapreduce.reduce.memory.mb (CPU:  mapreduce.reduce.cpu.vcores)

此参数定义了 reduce/map  容器分配的内存。此值大于mapreduce.reduce.java.opts。  

实际在生产上给map/reduce分配多少内存,还要依赖yarn容器设置,如 yarn.schduler.minimum-allocation-mb相关参数。

 

mapreduce.reduce.java.opts=-Xmx2048m

 此参数设置JVM使用的最大堆内存。

注意reduce/map任务是运行在容器中的,需要预留部分资源给JVM本身机制使用。使用的堆内存一般配置此参数为  mapreduce.reduce.memory.mb 的0.75。CDH最新版本默认是0.8

注:CDH5.5版本以上,此参数没有明确配置。 mapreduce.map.java.optsmapreduce.reduce.java.optsyarn.app.mapreduce.am.command-opts会基于container堆内存的比例进行自动配置。如下参数定义了上述两个参数的比例:

verdaccio如何支持yarn yarn vcore设置_mapreduce

 

 

CDH 默认情况下使用的时  公平调度器 分配资源。

verdaccio如何支持yarn yarn vcore设置_堆栈_02

 

Hadoop用户默认在在队列root.users下的root.users.hadoop子队列。    

注意该队列有写默认限制,  比如AM分配的最大内存百分比,默认值50%。  由于此公平队列可以浮动,最大可占总集群内存100%,则AM内存最大为总内存 3G*50%=1.5G

verdaccio如何支持yarn yarn vcore设置_java_03

具体可以看yarn WEB UI:

verdaccio如何支持yarn yarn vcore设置_java_04

 

其它参数

Application Master java最大堆栈      787.69

Reduce 任务内存 

Map 任务最大堆栈 0 ,
Reduce任务最大堆栈0

堆与容器大小之比0.8
mapreduce.job.heap.memory-mb.ratio