2016-04-14 15:21:43,133 FATAL [main] org.apache.hadoop.mapred.YarnChild: Error running child : java.lang.OutOfMemoryError: Java heap space at java.lang.StringCoding.decode(StringCoding.java:215) at java.lang.String.<init>(String.java:453) at org.apache.hadoop.hbase.util.Bytes.toString(Bytes.java:401) at org.apache.hadoop.hbase.util.Bytes.toString(Bytes.java:351) at com.tsi.hadoop.mr.task.crosstrade.CrossAnalysisSort01.compare(CrossAnalysisSort01.java:37) at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.compare(MapTask.java:1269) at org.apache.hadoop.util.QuickSort.sortInternal(QuickSort.java:99) at org.apache.hadoop.util.QuickSort.sort(QuickSort.java:63) at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.sortAndSpill(MapTask.java:1597) at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.flush(MapTask.java:1486) at org.apache.hadoop.mapred.MapTask$NewOutputCollector.close(MapTask.java:723) at org.apache.hadoop.mapred.MapTask.closeQuietly(MapTask.java:2016) at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:797) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341) at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:163) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:415) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1671) at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
以下是我的部门配置
<property>
<name>mapred.child.java.opts</name>
<value>-Xmx4096m</value>
</property>
<property>
<name>mapreduce.task.io.sort.mb</name>
<value>300</value>
</property>
<property>
<name>mapreduce.map.memory.mb</name>
<value>4000</value>
<description>每个Map任务的物理内存限制</description>
</property>
<property>
<name>mapreduce.reduce.memory.mb</name>
<value>2600</value>
<description>每个Reduce任务的物理内存限制</description>
</property>
<property>
<name>mapreduce.map.java.opts</name>
<value>-Xmx4096m</value>
</property>
<property>
<name>mapreduce.reduce.java.opts</name>
<value>-Xmx2600m</value>
</property>
|
|