我对理解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
我能得到更好的解释吗?
答案 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有不同的内存设置和限制。