Uploaded image for project: 'Hadoop Common'
  1. Hadoop Common
  2. HADOOP-3443

map outputs should not be renamed between partitions

    Details

    • Type: Bug
    • Status: Closed
    • Priority: 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.omalley 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.omalley 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.omalley Owen O'Malley added a comment -

        Should this be fixed in 0.17?

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

        > Should this be fixed in 0.17?

        Is it a regression?

        Show
        cutting Doug Cutting added a comment - > Should this be fixed in 0.17? Is it a regression?
        Hide
        chris.douglas 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 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 Chris Douglas added a comment -

        Port to 0.17, if we need it.

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

        I just committed this. Thanks, Owen

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

          People

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

            Dates

            • Created:
              Updated:
              Resolved:

              Development