关闭

yarn内存参数

3607人阅读 评论(0) 收藏 举报
分类:

参考自: 

1)http://blog.chinaunix.net/uid-28311809-id-4383551.html
2)https://support.pivotal.io/hc/en-us/articles/201462036-Mapreduce-YARN-Memory-Parameters 

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 task,yarn会在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.mb=4096 -Dmapreduce.map.java.opts=-Xmx3276

4、举例说明

如下图:
默认情况下,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.

map container的内存("mapreduce.map.memory.mb")被设置为1536mb 。am为其申请了2048m的内存,因为am的最小分配(yarn.scheduler.minimum-allocation-mb)是1024.如果map task对内存超过了2048m,nm会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. 

0
0
查看评论

[YARN] Yarn下Mapreduce的内存参数理解

这篇文章算是给自己重新缕清MR下内存参数的含义 Container是什么? Container就是一个yarn的java进程,在Mapreduce中的AM,MapTask,ReduceTask都作为Container在Yarn的框架上执行,你可以在RM的网页上看到Container的状态...
  • dxl342
  • dxl342
  • 2016-11-08 09:42
  • 3406

如何判定并设置YARN 和MapReduce 内存

11.1. Manually Calculate YARN and MapReduce Memory Configuration Settings This section describes how to manually calculate YARN and MapReduce me...
  • youngqj
  • youngqj
  • 2015-08-06 13:07
  • 3397

Hadoop/Yarn/MapReduce内存分配(配置)方案

以horntonworks给出推荐配置为蓝本,给出一种常见的Hadoop集群上各组件的内存分配方案。方案最右侧一栏是一个8G VM的分配方案,方案预留1-2G的内存给操作系统,分配4G给Yarn/MapReduce,当然也包括了HIVE,剩余的2-3G是在需要使用HBase时预留给HBase的。Co...
  • bluishglc
  • bluishglc
  • 2015-01-06 08:30
  • 25404

MapReduce作业配置参数

可在客户端的mapred-site.xml中配置,作为MapReduce作业的缺省配置参数。也可以在作业提交时,个性化指定这些参数。 参数名称 缺省值 说明 mapreduce.job.name   作业名称 mapreduce.job.prior...
  • qiezikuaichuan
  • qiezikuaichuan
  • 2015-06-29 14:28
  • 1091

Reduce内存不足的解决方案

MapReduce作业运行时,任务可能会失败,报out of memory错误。这个时候可以采用以下几个过程调优简单粗暴: 加大内存哪个阶段报错就增加那个阶段的内存。以reduce阶段为例,map阶段的类似mapreduce.reduce.memory.mb=5120 //设置reduce co...
  • WuyouJie2008
  • WuyouJie2008
  • 2016-01-27 10:00
  • 5537

MapReduce学习笔记之Map任务(三)

本节所有属性会被mapred-default.xml或mapred-site.xml文件中设定的该属性值覆盖。 1. dfs.blocksize属性HDFS文件的块默认容量可以被配置文件(hdfs-site.xml)覆盖。某些情况下,Map任务可能只需要几秒时间就可以处理一个块,所以,最好让Map...
  • u013980127
  • u013980127
  • 2016-10-13 15:34
  • 2617

mapreduce.{map|reduce}.java.opts vs. mapreduce.{map|reduce}.memory.mb

In Hadoop 2, tasks are run within containers launched by YARN.  mapreduce.{map|reduce}.memory.mb is used by YARN to set the memory size of the co...
  • wisgood
  • wisgood
  • 2015-01-12 13:59
  • 2627

MapReduce任务参数调优

http://blog.javachen.com/2014/06/24/tuning-in-mapreduce/ 本文主要记录Hadoop 2.x版本中MapReduce参数调优,不涉及Yarn的调优。 Hadoop的默认配置文件(以cdh5.0.1为例): core-default.xm...
  • shubingzhuoxue
  • shubingzhuoxue
  • 2015-12-09 21:34
  • 1636

MapReduce启动的Map/Reduce子任务简要分析

对于Hadoop来说,是通过在DataNode中启动Map/Reduce java进程的方式来实现分布式计算处理的,那么就从源码层简要分析一下hadoop中启动Map/Reduce任务的过程。   首先,对于Map/Reduce端启动的任务,都是通过一些参数来控制java opts的,...
  • clamaa
  • clamaa
  • 2017-04-11 09:56
  • 355

Hadoop 参数 mapred.map.child.java.opts

Hadoop mapred.map.child.java.opts 解决 outofmemory问题
  • u011317245
  • u011317245
  • 2016-10-17 10:35
  • 4239
    个人资料
    • 访问:1560276次
    • 积分:13233
    • 等级:
    • 排名:第1198名
    • 原创:148篇
    • 转载:367篇
    • 译文:0篇
    • 评论:89条
    博客专栏
    文章分类
    最新评论