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

最近发现Hadoop Job集群的load非常高,最后发现是mapred.child.Java.opts设置过大导致的,我们当初设置为-Xmx5120导致TaskTracker上内存资源耗尽,进而开始不断swap磁盘上数据,load升高 在执行一个Task的时候,首先会根据JobConf中设定的JVM参数写入一个taskjvm.sh文件中,然后调用Linux命令 bin/bash -c taskjvm.sh 来执行 task.

mapred.child.java.opts就是设定jvm的参数之一,在新版本中已经标准为过期,取而代之的是区分Map Task 和Reduce Task 的jvm opts , mapred.map.child.java.opts和mapred.reduce.child.java.opts(默认值为-Xmx200m)

当用户在不设置该值情况下,会以最大1G jvm heap size启动task,有可能导致OutOfMemory,所以最简单的做法就是设大参数,并且由于这个值不是final,所以用户可以在自己的mapred-site.xml中可以覆盖默认值

其实在构造JVM Args的过程中,是有另外一个admin参考可以覆盖用户端设置的

mapreduce.admin.map.child.java.opts   mapreduce.admin.reduce.child.java.opts

 

[html] view plain copy

  1. 在mapred-site.xml中加上如下配置:  
  2. <property>  
  3.    <name>mapreduce.admin.map.child.java.opts</name>  
  4.    <value>-Xmx1024m</value>  
  5. </property>  
  6. <property>  
  7.     <name>mapreduce.admin.reduce.child.java.opts</name>  
  8.     <value>-Xmx5120m</value>  
  9. </property>  

 

 

mapred.child.java.opts设置成多大比较合适:

这个参数是配置每个map或reduce使用的内存数量,默认是200m,一般情况下,该值设置为 总内存/并发数量(=核数)

 

mapred.map.child.java.opts和mapreduce.map.memeory.mb的区别:

mapreduce.map.memory.mb是向RM申请的内存资源大小,这些资源可用用于各种程序语言编写的程序, mapred.map.child.java.opts 一般只用于配置JVM参数

转载于:https://my.oschina.net/sniperLi/blog/913685

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值