[ 
https://issues.apache.org/jira/browse/MAPREDUCE-4655?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sandy Ryza resolved MAPREDUCE-4655.
-----------------------------------

    Resolution: Invalid
    
> MergeManager.reserve can OutOfMemoryError if more than 10% of max memory is 
> used on non-MapOutputs
> --------------------------------------------------------------------------------------------------
>
>                 Key: MAPREDUCE-4655
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-4655
>             Project: Hadoop Map/Reduce
>          Issue Type: Bug
>          Components: nodemanager
>    Affects Versions: 2.0.1-alpha
>            Reporter: Sandy Ryza
>
> The MergeManager does a memory check, using a limit that defaults to 90% of 
> Runtime.getRuntime().maxMemory(). Allocations that would bring the total 
> memory allocated by the MergeManager over this limit are asked to wait until 
> memory frees up. Disk is used for single allocations that would be over 25% 
> of the memory limit.
> If some other part of the reducer were to be using more than 10% of the 
> memory. the current check wouldn't stop an OutOfMemoryError.
> Before creating an in-memory MapOutput, a check can be done using 
> Runtime.getRuntime().freeMemory(), waiting until memory is freed up if it 
> fails.
> 12/08/17 10:36:29 INFO mapreduce.Job: Task Id : 
> attempt_1342723342632_0010_r_000005_0, Status : FAILED 
> Error: org.apache.hadoop.mapreduce.task.reduce.Shuffle$ShuffleError: error in 
> shuffle in fetcher#6 
> at org.apache.hadoop.mapreduce.task.reduce.Shuffle.run(Shuffle.java:123) 
> at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:371) 
> at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:152) 
> at java.security.AccessController.doPrivileged(Native Method) 
> at javax.security.auth.Subject.doAs(Subject.java:416) 
> at 
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1232)
>  
> at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:147) 
> Caused by: java.lang.OutOfMemoryError: Java heap space 
> at 
> org.apache.hadoop.io.BoundedByteArrayOutputStream.<init>(BoundedByteArrayOutputStream.java:58)
>  
> at 
> org.apache.hadoop.io.BoundedByteArrayOutputStream.<init>(BoundedByteArrayOutputStream.java:45)
>  
> at 
> org.apache.hadoop.mapreduce.task.reduce.MapOutput.<init>(MapOutput.java:97) 
> at 
> org.apache.hadoop.mapreduce.task.reduce.MergeManager.unconditionalReserve(MergeManager.java:286)
>  
> at 
> org.apache.hadoop.mapreduce.task.reduce.MergeManager.reserve(MergeManager.java:276)
>  
> at 
> org.apache.hadoop.mapreduce.task.reduce.Fetcher.copyMapOutput(Fetcher.java:327)
>  
> at 
> org.apache.hadoop.mapreduce.task.reduce.Fetcher.copyFromHost(Fetcher.java:273)
>  
> at org.apache.hadoop.mapreduce.task.reduce.Fetcher.run(Fetcher.java:153)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to