Yarn下的YarnChild启动个数决定参数

Yarn下的mapper和reducer并发执行个数有什么决定的呢?

由调度的资源决定的,也就是说启动的YarnChild个数多少取决于资源的分配和free的资源量

参数说明:

conf/yarn-site.xml

yarn.nodemanager.resource.memory-mb

NodeManager总的可用物理内存,默认值是8192MB,一般情况下不要修改

yarn.nodemanager.vmem-pmem-ratio

每使用1MB物理内存,最多可用的虚拟内存数默认2.1

yarn.nodemanager.resource.cpu-vcores

参数解释:NodeManager总的可用虚拟CPU个数。默认值:8

conf/mapred-site.xml:

mapreduce.map.memory.mb

每个Map Task需要的内存量默认1024m

mapreduce.map.java.opts

map的最大累计内存如:-Xmx1024M

mapreduce.reduce.memory.mb

每个Reduce Task需要的内存量默认1024m

mapreduce.reduce.java.opts

所有reduce加起来的总和内存大小如:-Xmx1024M  

yarn.scheduler.minimum-allocation-mb

默认值:1024 

yarn.scheduler.maximum-allocation-mb

默认值:8192

 

拆分说明如下:

Container for task

memory:

单位:mb

默认值:1024

首选"mapreduce.map|reduce.memory.mb" 默认值:0

其次

获取-Xmx配置的heapsize

配置项首选 "mapreduce.map|reduce.java.opts"

其次 "mapred.child.java.opts" 默认值:-Xmx200m

xmx浮动

浮动比例:"mapreduce.xmx.overflow.memory.percent" 默认值:0.1

浮动量:"mapreduce.xmx.overflow.memory.mb" 默认值:128

综合:xmx = ceil(xmx * (1 + 0.1) + 128 * 1.0) 即默认200*1.1 + 128 = 348

cpu

单位:vcore

默认值:1

配置项:"mapreduce.map|reduce.cpu.vcores"

 

Container for appmaster

memory

单位:mb

默认值:1536

配置项:"yarn.app.mapreduce.am.resource.mb"

cpu

单位:vcore

默认值:1

配置项:"yarn.app.mapreduce.am.resource.cpu-vcores"

 

调度器控制

memory

单位:mb

申请最小值:"yarn.scheduler.minimum-allocation-mb" 默认值:1024

申请最大值:"yarn.scheduler.maximum-allocation-mb" 默认值:8192

cpu

单位:vcore

申请最小值:"yarn.scheduler.minimum-allocation-vcores" 默认值:1

申请最大值:"yarn.scheduler.maximum-allocation-vcores" 默认值:4

 

你可能感兴趣的:(yarn)