荆州松滋网站建设,山西搜索引擎优化,交友软件,wordpress 表单校验1、yarn-site.xml 设置 1.1 RM设置 RM的内存资源配置#xff0c;主要是通过下面的两个参数进行的#xff08;这两个值是Yarn平台特性#xff0c;应在yarn-sit.xml中配置好#xff09;#xff1a; yarn.scheduler.minimum-allocation-mb yarn.scheduler.maximum-allocati… 1、yarn-site.xml 设置 1.1 RM设置 RM的内存资源配置主要是通过下面的两个参数进行的这两个值是Yarn平台特性应在yarn-sit.xml中配置好 yarn.scheduler.minimum-allocation-mb yarn.scheduler.maximum-allocation-mb 说明单个容器可申请的最小与最大内存应用在运行申请内存时不能超过最大值小于最小值则分配最小值从这个角度看最小值有点想操作系统中的页。最小值还有另外一种用途计算一个节点的最大container数目注这两个值一经设定不能动态改变(此处所说的动态改变是指应用运行时)。 1.2 NM设置 NM的内存资源配置主要是通过下面两个参数进行的这两个值是Yarn平台特性应在yarn-sit.xml中配置 yarn.nodemanager.resource.memory-mb yarn.nodemanager.vmem-pmem-ratio 说明每个节点可用的最大内存RM中的两个值不应该超过此值。此数值可以用于计算container最大数目即用此值除以RM中的最小容器内存。虚拟内存率是占task所用内存的百分比默认值为2.1倍;注意第一个参数是不可修改的一旦设置整个运行过程中不可动态修改且该值的默认大小是8G即使计算机内存不足8G也会按着8G内存来使用。 2、map-site.xml 设置 2.1 AM设置 AM内存配置相关参数此处以MapReduce为例进行说明这两个值是AM特性应在mapred-site.xml中配置如下 mapreduce.map.memory.mb mapreduce.reduce.memory.mb 说明这两个参数指定用于MapReduce的两个任务Map and Reduce task的内存大小其值应该在RM中的最大最小container之间。如果没有配置则通过如下简单公式获得 max(MIN_CONTAINER_SIZE, (Total Available RAM) / containers)) 一般的reduce应该是map的2倍。注这两个值可以在应用启动时通过参数改变 2.2 AM JVM设置 AM中其它与内存相关的参数还有JVM相关的参数这些参数可以通过如下选项配置 mapreduce.map.java.opts mapreduce.reduce.java.opts 说明这两个参主要是为需要运行JVM程序java、scala等准备的通过这两个设置可以向JVM中传递参数的与内存有关的是-Xmx-Xms等选项。此数值大小应该在AM中的map.mb和reduce.mb之间。 3、所有参数 YARN相关 yarn.scheduler.minimum-allocation-mb yarn.scheduler.maximum-allocation-mb yarn.nodemanager.vmem-pmem-ratio yarn.nodemanager.resource.memory.mb Map相关参数 mapreduce.map.java.opts mapreduce.map.memory.mb Reduce相关参数 mapreduce.reduce.java.opts mapreduce.reduce.memory.mb 注意 在hadoop2及以上版本中map和reduce task 是运行在container中的。mapreduce.{map|reduce}.memory.mb被yarn用来设置container的内存大小。如果container的内存超限会被yarn杀死。在container中为了执行map和reduce taskyarn会在contaner中启动一个jvm来执行task任务。mapreduce.{map|reduce}.java.opts用来设置container启动的jvm参数通过设置Xmx来设置map 或者reduce task的最大堆内存。理论上{map|reduce}.java.opts设置的最大堆内存要比{map|reduce}.memory.mb小。例如 hadoop jar jarName -Dmapreduce.reduce.memory.mb4096 -Dmapreduce.map.java.opts-Xmx3276 4、举例说明 如下图 YARN-site.xml相关 yarn.scheduler.minimum-allocation-mb 1024 yarn.scheduler.maximum-allocation-mb 8192 yarn.nodemanager.vmem-pmem-ratio 2.1 yarn.nodemanager.resource.memory.mb 24576 Map-site.xml相关参数 mapreduce.map.java.opts Xmx1024m mapreduce.map.memory.mb 1536 mapreduce.reduce.java.opts Xmx2560m mapreduce.reduce.memory.mb 3072 map container的内存(mapreduce.map.memory.mb)被设置为1536mb 。am为其申请了2048m的内存因为am的最小分配yarn.scheduler.minimum-allocation-mb是1024.如果map task对内存超过了2048mnm会kill掉该task。reduce类似。 When a mapreduce job completes you will see several counters dumped at the end of the job. The three memory counters below show how much physical memory was allocated vs virtual memory. 默认情况下yarn.nodemanager.vmem-pmem-ratio被设置为2.1这意味着每个map或者task任务只能使用2.1倍mapreduce.reduce.memory.mb) or (mapreduce.map.memory.mb) 大小的虚拟内存否则会被nm杀掉。 例如下面的的报错信息: Current usage: 2.1gb of 2.0gb physical memory used; 1.6gb of 3.15gb virtual memory used. Killing container.