YARN的内存杀死限制问题

时间:2016-08-18 10:57:43

标签: hadoop yarn

我对理解YARN配置有疑问 我在yarn / mapreduce配置中有这样的行:

<name>mapreduce.map.memory.mb</name>
<value>2048</value>

<name>mapreduce.reduce.memory.mb</name>
<value>1024</value>

<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>2.1</value>

Here写道:

  

默认情况下(“yarn.nodemanager.vmem-pmem-ratio”)设置为2.1。这意味着在NM将杀死容器之前,map或reduce容器可以分配最多2.1倍(“mapreduce.reduce.memory.mb”)或(“mapreduce.map.memory.mb”)的虚拟内存。< / p>

当NodeManager杀死我的容器时?
当整个容器达到2048MB * 2.1 = 4300,8MB?或者1024MB * 2.1 = 2150,4MB

我能得到更好的解释吗?

1 个答案:

答案 0 :(得分:0)

每个Mapper和Reducer都在自己独立的容器中运行(Mappers和Reducers之间不共享容器,除非它是Uber作业。请在此处查看Uber模式:What is the purpose of "uber mode" in hadoop?)。

通常,Mapper和Reducer的内存要求不同。

因此,Mapper(mapreduce.map.memory.mb)和Reducer(mapreduce.reduce.memory.mb)有不同的配置参数。

因此,根据yarn-site.xml中的设置,Mapper和Redcuer的虚拟内存限制为:

Mapper limit: 2048 * 2.1 = 4300.8 MB

Reducer limit: 1024 * 2.1 = 2150.4 MB

简而言之,Mappers和Reducers有不同的内存设置和限制。