mapreduce.map.memory.mb 参数问题

请问,
在hive 脚本设置了参数: mapreduce.map.memory.mb = 8G
假设AM给了资源,那么container 就会预支8G空间给我,AM看到此container就会减少8G?
还是另外一种思路,node manager一看空间够了,先让你来跑,用多少给多少,超过了8G,直接kill。但是没有被占用的空间,可以被其他map or reduce使用。
比较想知道,如果map实际用的space比申请的少很多,这样的程序较多,会对整个集群有什么影响?wait资源的job会变多?Yarn or Hadoop有无应对措施?只能人手工去优化上面的参数吗?
 
Best Regards,
<nxzzs>
 
 
 

fish - Hadooper

赞同来自: 华山青阳

可以改大,没什么特殊需求,建议在集群层面直接改大或者通过yarn.nodemanager.vmem-check-enabled把它关了吧 。

fish - Hadooper

赞同来自:

关于配置,可以参看http://wenda.chinahadoop.cn/question/2291 。或者在小象问答中搜索你所希望了解的配置项,看是否有你需要的答案。   至于资源分配,在你描述的过程中少了一个角色:ResourceManager。 在资源分配过程中,实际是AM向RM要资源,拿到之后,AM才能向NM下发Container分配要求。   当资源不足以满足任务的需求时,Container就不会被分配出来,新的任务会处于等待状态直到集群有足够资源。  针对不同的job,mapreduce.map.memory.mb可以指定不同的值,在任务提交时根据任务的实际需求指定 。

华山青阳

赞同来自:

@fish 老师,谢谢您的回复。额外咨询您一个问题可以吗? yarn.nodemanager.vmem-pmem-ratio 这个参数可以在hive脚本修改吗? 集群默认是2.1。但是我的很多任务虚拟空间是实际使用内存的5倍以上。这个是不是意味这我有很大的优化空间?

要回复问题请先登录注册