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

Owen O'Malley commented on HADOOP-5299:
---------------------------------------

I should also expand on the perennial idea of putting the map outputs in HDFS 
is really problematic. Writing the data isn't that bad with two files (the 
index and map output data), but the killer is the reading. There are M*R pairs 
and they all need to read their data. On large jobs with 300,000 maps and 4,000 
reduces that means there are 2,400,000,000 file open operations. That is a 
*lot* of Name Node traffic. By comparison, the 600,000 creates and closes for 
writing the map output to HDFS is in the noise.

> Reducer inputs should be spilled to HDFS rather than local disk.
> ----------------------------------------------------------------
>
>                 Key: HADOOP-5299
>                 URL: https://issues.apache.org/jira/browse/HADOOP-5299
>             Project: Hadoop Core
>          Issue Type: Improvement
>          Components: mapred
>    Affects Versions: 0.19.0
>         Environment: All
>            Reporter: Milind Bhandarkar
>
> Currently, both map outputs and reduce inputs are stored on local disks of 
> tasktrackers. (Un) Availability of local disk space for intermediate data is 
> seen as a major factor in job failures. 
> The suggested solution is to store these intermediate data on HDFS (maybe 
> with replication factor of 1). However, the main blocker issue with that 
> solution is that lots of temporary names (proportional to total number of 
> maps), can overwhelm the namenode, especially since the map outputs are 
> typically small (most produce one block output).
> Also, as we see in many applications, the map outputs can be estimated more 
> accurately, and thus users can plan accordingly, based on available local 
> disk space.
> However, the reduce input sizes can vary a lot, especially for skewed data 
> (or because of bad partitioning.)
> So, I suggest that it makes more sense to keep map outputs on local disks, 
> but the reduce inputs (when spilled from reducer memory) should go to HDFS.
> Adding a configuration variable to indicate the filesystem to be used for 
> reduce-side spills would let us experiment and compare the efficiency of this 
> new scheme.

-- 
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