On Dec 5, 2008, at 2:43 PM, Songting Chen wrote:

To summarize the slow shuffle issue:

1. I think one problem is that the Reducer starts very
late in the process, slowing the entire job significantly.

  Is there a way to let reducer start earlier?


http://issues.apache.org/jira/browse/HADOOP-3136 should help you there, it's pretty close to getting in to 0.20.

Arun

2. Copying 300 files with 30K each took total 3 mins (after all map finished). This really puzzles me what's behind the scene. (note that sorting takes < 1 sec)

Thanks,
-Songting



--- On Fri, 12/5/08, Songting Chen
<[EMAIL PROTECTED]> wrote:

From: Songting Chen <[EMAIL PROTECTED]>
Subject: Re: slow shuffle
To: core-user@hadoop.apache.org
Date: Friday, December 5, 2008, 1:27 PM
We have 4 testing data nodes with 3 reduce tasks. The
parallel.copies parameter has been increased to 20,30,
even
50. But it doesn't really help...


--- On Fri, 12/5/08, Aaron Kimball
<[EMAIL PROTECTED]> wrote:

From: Aaron Kimball <[EMAIL PROTECTED]>
Subject: Re: slow shuffle
To: core-user@hadoop.apache.org
Date: Friday, December 5, 2008, 12:28 PM
How many reduce tasks do you have? Look into
increasing
mapred.reduce.parallel.copies from the default of
5 to
something more like
20 or 30.

- Aaron

On Fri, Dec 5, 2008 at 10:00 PM, Songting Chen
<[EMAIL PROTECTED]>wrote:

A little more information:

We optimized our Map process quite a bit
that now
the
Shuffle becomes the
bottleneck.

1. There are 300 Map jobs (128M size block),
each
takes about 13 sec.
2. The Reducer starts running at a very late
stage
(80% maps are done)
3. copy 300 map outputs (shuffle) takes as
long
as the
entire map process,
although each map output is just about
50Kbytes





--- On Fri, 12/5/08, Alex Loddengaard
<[EMAIL PROTECTED]> wrote:

From: Alex Loddengaard
<[EMAIL PROTECTED]>
Subject: Re: slow shuffle
To: core-user@hadoop.apache.org
Date: Friday, December 5, 2008, 11:43
AM
These configuration options will be
useful:

<property>




<name>mapred.job.shuffle.merge.percent</name>
 <value>0.66</value>
 <description>The usage
threshold at
which an
in-memory merge will be
 initiated, expressed as a
percentage
of
the total
memory allocated to
 storing in-memory map outputs,
as
defined
by

mapred.job.shuffle.input.buffer.percent.
 </description>
</property>

<property>




<name>mapred.job.shuffle.input.buffer.percent</name>
 <value>0.70</value>
 <description>The
percentage of
memory to be
allocated from the maximum
heap
 size to storing map outputs
during
the
shuffle.
 </description>
</property>

<property>




<name>mapred.job.reduce.input.buffer.percent</name>
 <value>0.0</value>
 <description>The
percentage of
memory-
relative to the maximum heap size-
to
 retain map outputs during the
reduce.
When
the
shuffle is concluded, any
 remaining map outputs in memory
must
consume less
than this threshold
before
 the reduce can begin.
 </description>
</property>


How long did the shuffle take relative
to
the
rest of the
job?

Alex

On Fri, Dec 5, 2008 at 11:17 AM,
Songting
Chen
<[EMAIL PROTECTED]>wrote:

We encountered a bottleneck during
the
shuffle phase.
However, there is not
much data to be shuffled across
the
network
at all -
total less than
10MBytes (the combiner aggregated
most
of
the data).

Are there any parameters or
anything we
can
tune to
improve the shuffle
performance?

Thanks,
-Songting



Reply via email to