hadoop-common-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Owen O'Malley (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HADOOP-5299) Reducer inputs should be spilled to HDFS rather than local disk.
Date Sun, 22 Feb 2009 18:47:01 GMT

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

View raw message