Hadoop Common
  1. Hadoop Common
  2. HADOOP-3443

map outputs should not be renamed between partitions

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 0.17.0
    • Fix Version/s: 0.18.0
    • Component/s: None
    • Labels:
      None
    • Hadoop Flags:
      Reviewed

      Description

      If a map finishes with out having to spill its data buffer, the map outputs are sorted and written to disk. However, no care is taken to make sure that the same partition is used to write it out before it is renamed. On nodes with multiple disks assigned to the task trackers, this will likely cause an addition read/write cycle to disk that is very expensive.

      1. hadoop-3443-1.patch
        4 kB
        Owen O'Malley
      2. hadoop-3443-1v17.patch
        4 kB
        Chris Douglas

        Activity

        Hide
        Owen O'Malley added a comment -

        This patch uses the same directory for the final outputs in the case that there is a single spill. It also adds some logging so you can understand if (and why) the mapper's sort spilled.

        Show
        Owen O'Malley added a comment - This patch uses the same directory for the final outputs in the case that there is a single spill. It also adds some logging so you can understand if (and why) the mapper's sort spilled.
        Hide
        Owen O'Malley added a comment -

        Should this be fixed in 0.17?

        Show
        Owen O'Malley added a comment - Should this be fixed in 0.17?
        Hide
        Doug Cutting added a comment -

        > Should this be fixed in 0.17?

        Is it a regression?

        Show
        Doug Cutting added a comment - > Should this be fixed in 0.17? Is it a regression?
        Hide
        Chris Douglas added a comment -

        +1 Looks good. Some of the logging could be at the debug level, particularly the logging in the synchronized section of BlockingBuffer.Buffer::write, but it shouldn't be a real issue.

        Is it a regression?

        No; it looks pretty ancient, but if there's a 0.17.1, including this would only make things better.

        Show
        Chris Douglas added a comment - +1 Looks good. Some of the logging could be at the debug level, particularly the logging in the synchronized section of BlockingBuffer.Buffer::write, but it shouldn't be a real issue. Is it a regression? No; it looks pretty ancient, but if there's a 0.17.1, including this would only make things better.
        Hide
        Chris Douglas added a comment -

        Port to 0.17, if we need it.

        Show
        Chris Douglas added a comment - Port to 0.17, if we need it.
        Hide
        Chris Douglas added a comment -

        I just committed this. Thanks, Owen

        Show
        Chris Douglas added a comment - I just committed this. Thanks, Owen
        Hide
        Hudson added a comment -
        Show
        Hudson added a comment - Integrated in Hadoop-trunk #511 (See http://hudson.zones.apache.org/hudson/job/Hadoop-trunk/511/ )

          People

          • Assignee:
            Owen O'Malley
            Reporter:
            Owen O'Malley
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development