Hi,

Which hadoop version are you running? Your error looks similar to
https://issues.apache.org/jira/browse/MAPREDUCE-1182


On Fri, Dec 2, 2011 at 11:17 AM, Ravi teja ch n v
<raviteja.c...@huawei.com>wrote:

> Hi Bobby,
>
>  You are right that the Map outputs when copied will be spilled to the
> disk, but in case the the reducer cannot accomodate the copy inmemory.
> (shuffleInMemory and shuffleToDisk are chosen by rammanager based on
> inmemory size)
>
>  But according to the stack trace provided by Mingxi,
>
>  
> >org.apache.hadoop.mapred.ReduceTask$ReduceCopier$MapOutputCopier.shuffleInMemory(ReduceTask.java:1592)
>
> The problem has occured,after the inmemory copy was chosen,
>
> Regards,
> Ravi Teja
> ________________________________________
> From: Robert Evans [ev...@yahoo-inc.com]
> Sent: 01 December 2011 21:44:50
> To: common-dev@hadoop.apache.org
> Subject: Re: Hadoop - non disk based sorting?
>
> Mingxi,
>
> My understanding was that just like with the maps that when a reducer's in
> memory buffer fills up it too will spill to disk as part of the sort.  In
> fact I think it uses the exact same code for doing the sort as the map
> does.  There may be an issue where your sort buffer is some how too large
> for the amount of heap that you requested as part of the
> mapred.child.java.opts.  I have personally run a reduce that took in 300GB
> of data, which it successfully sorted, to test this very thing.  And no the
> box did not have 300 GB of RAM.
>
> --Bobby Evans
>
> On 12/1/11 4:12 AM, "Ravi teja ch n v" <raviteja.c...@huawei.com> wrote:
>
> Hi Mingxi ,
>
> >So, why when map outputs are huge, reducer will not able to copy them?
>
> The Reducer  will copy the Map output into its inmemory buffer. When the
> Reducer JVM doesnt have enough memory to accomodate the
> Map output, then it leads to OutOfMemoryException.
>
> >Can you please kindly explain what's the function of
> mapred.child.java.opts? how does it relate to copy?
>
> The Maps and Reducers will be launched in separate child JVMs launched at
> the Tasktrackers.
> When the Tasktracker launches the Map or Reduce JVMs, it uses the
> mapred.child.java.opts as JVM arguments for the new child JVMs.
>
> Regards,
> Ravi Teja
> ________________________________________
> From: Mingxi Wu [mingxi...@turn.com]
> Sent: 01 December 2011 12:37:54
> To: common-dev@hadoop.apache.org
> Subject: RE: Hadoop - non disk based sorting?
>
> Thanks Ravi.
>
> So, why when map outputs are huge, reducer will not able to copy them?
>
> Can you please kindly explain what's the function of
> mapred.child.java.opts? how does it relate to copy?
>
> Thank you,
>
> Mingxi
>
> -----Original Message-----
> From: Ravi teja ch n v [mailto:raviteja.c...@huawei.com]
> Sent: Tuesday, November 29, 2011 9:46 PM
> To: common-dev@hadoop.apache.org
> Subject: RE: Hadoop - non disk based sorting?
>
> Hi Mingxi,
>
> From your stacktrace, I understand that the OutOfMemoryError has actually
> occured while copying the MapOutputs, not while sorting them.
>
> Since your Mapoutputs are huge and your reducer does have enough heap
> memory, you got the problem.
> When you have made the reducers to 200, your Map outputs have got
> partitioned amoung 200 reducers, so you didnt get this problem.
>
> By setting the max memory of your reducer with mapred.child.java.opts, you
> can get over this problem.
>
> Regards,
> Ravi teja
>
>
> ________________________________________
> From: Mingxi Wu [mingxi...@turn.com]
> Sent: 30 November 2011 05:14:49
> To: common-dev@hadoop.apache.org
> Subject: Hadoop - non disk based sorting?
>
> Hi,
>
> I have a question regarding the shuffle phase of reducer.
>
> It appears when there are large map output (in my case, 5 billion
> records), I will have out of memory Error like below.
>
> Error: java.lang.OutOfMemoryError: Java heap space at
> org.apache.hadoop.mapred.ReduceTask$ReduceCopier$MapOutputCopier.shuffleInMemory(ReduceTask.java:1592)
> at
> org.apache.hadoop.mapred.ReduceTask$ReduceCopier$MapOutputCopier.getMapOutput(ReduceTask.java:1452)
> at
> org.apache.hadoop.mapred.ReduceTask$ReduceCopier$MapOutputCopier.copyOutput(ReduceTask.java:1301)
> at
> org.apache.hadoop.mapred.ReduceTask$ReduceCopier$MapOutputCopier.run(ReduceTask.java:1233)
>
> However, I thought the shuffling phase is using disk-based sort, which is
> not constraint by memory.
> So, why will user run into this outofmemory error? After I increased my
> number of reducers from 100 to 200, the problem went away.
>
> Any input regarding this memory issue would be appreciated!
>
> Thanks,
>
> Mingxi
>



-- 
Thanks & Regards,
Chandra Prakash Bhagtani,
Nokia India Pvt. Ltd.

Reply via email to