关于YARN的配置参数yarn.scheduler.maximum-allocation-mb

在安装脚本从训练营的拖下来的配置文件中的yarn-site.xml中有如下配置
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>10000</value>
</property>
这是说每个container最多申请的内存上限,会不会存在一个container申请过多资源的情况,只要没超过10Gyarn就不会管他,但是可能超过机器内存限制了,然后就被OOM killer杀死了
但是在mapred-site.xml中也有如下设置,
<property>
<name>yarn.app.mapreduce.am.command-opts</name>
<value>-Djava.net.preferIPv4Stack=true -Xmx100m</value>
</property>
<property>
<name>mapreduce.map.java.opts</name>
<value>-Djava.net.preferIPv4Stack=true -Xmx100m</value>
</property>
<property>
<name>mapreduce.reduce.java.opts</name>
<value>-Djava.net.preferIPv4Stack=true -Xmx100m</value>
</property>
如上设置是不是说,如果只是跑MapReduce的话,内存其使用其实不会远远达不到10000M那么大的,即便是一个节点上同时跑一个Map和Reduce其实内存只是占用400M(不算节点上的其他服务)?
那如果为了防止任务占用内存太大的话,假如节点上正常开启服务的话就剩余1000M内存的话,是不是把<name>yarn.scheduler.maximum-allocation-mb</name>的值改成800M、500M更合适一些呢

fish - Hadooper

赞同来自: fullmooner

yarn.scheduler.maximum-allocation-mb确实可以设置的小些,这里设置这么大,实际这个配置不会其效果。 但在我们的平台中,也不会出现“一个container申请过多资源的情况,只要没超过10Gyarn就不会管他”的情况,因为我们提交的是mapreduce任务,资源还会受到yarn.app.mapreduce.am.resource.mb和mapreduce.map.memory.mb、mapreduce.reduce.memory.mb的限制。   yarn.scheduler.maximum-allocation-mb确实如你所说,可以做更合理的调整,改小些。

要回复问题请先登录注册