[ 
https://issues.apache.org/jira/browse/HADOOP-910?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12569185#action_12569185
 ] 

Amar Kamat commented on HADOOP-910:
-----------------------------------

I think the performance degradation with 
{{mapred.tasktracker.map/reduce.tasks.maximum = 4}} is transient. I ran a job 
with same settings mentioned earlier but with 
{{mapred.tasktracker.map/reduce.tasks.maximum = 4}} and the results are as 
follows
||#||trunk + patch||trunk||
|1|1hr 2 min|1 hr 4 min|
|2| 1hr 2 min|1 hr 5 min|
Although the dataset was different the timings are pretty good.
Just to be sure that the patch doesnt degrade the performance I ran a job with 
the following config :
{noformat}
Number of nodes : 200
Java heap size : 1024mb
io.sort.factor : 100
{noformat}
Following are the results 
With {{mapred.tasktracker.map/reduce.tasks.maximum=2}}
||#||trunk + patch||trunk||
|1|1hr 6 min|1 hr 7 min|
|2| 1hr 11 min|1 hr 8 min|
|3| 1hr 7 min| 1 hr 9 min|
With {{mapred.tasktracker.map/reduce.tasks.maximum=4}}
||#||trunk + patch||trunk||
|1|1hr 14 min|1 hr 16 min|
|2| 1hr 16 min|1 hr 16 min|
|3| 1hr 18 min| 1 hr 17 min|
This is expected because on-disk merge rarely occurs with {{io.sort.factor = 
100}}  i.e the performance is not degraded with no (or very few) on-disk merges 
.
----
Hardware configuration  :
Processor : 4x HT 1.8GHz Intel Xeon
Ram : 8GB 
Disk : 4 disks each of 250GB 

> Reduces can do merges for the on-disk map output files in parallel with their 
> copying
> -------------------------------------------------------------------------------------
>
>                 Key: HADOOP-910
>                 URL: https://issues.apache.org/jira/browse/HADOOP-910
>             Project: Hadoop Core
>          Issue Type: Improvement
>          Components: mapred
>            Reporter: Devaraj Das
>            Assignee: Amar Kamat
>         Attachments: HADOOP-910-review.patch
>
>
> Proposal to extend the parallel in-memory-merge/copying, that is being done 
> as part of HADOOP-830, to the on-disk files.
> Today, the Reduces dump the map output files to disk and the final merge 
> happens only after all the map outputs have been collected. It might make 
> sense to parallelize this part. That is, whenever a Reduce has collected 
> io.sort.factor number of segments on disk, it initiates a merge of those and 
> creates one big segment. If the rate of copying is faster than the merge, we 
> can probably have multiple threads doing parallel merges of independent sets 
> of io.sort.factor number of segments. If the rate of copying is not as fast 
> as merge, we stand to gain a lot - at the end of copying of all the map 
> outputs, we will be left with a small number of segments for the final merge 
> (which hopefully will feed the reduce directly (via the RawKeyValueIterator) 
> without having to hit the disk for writing additional output segments).
> If the disk bandwidth is higher than the network bandwidth, we have a good 
> story, I guess, to do such a thing.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to