Uploaded image for project: 'Hadoop Map/Reduce'
  1. Hadoop Map/Reduce
  2. MAPREDUCE-7085

while loop in InputSampler.writePartitionFile method is never entered

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Minor
    • Resolution: Unresolved
    • 2.8.3
    • None
    • mrv2
    • None

    Description

      After getting the split points are out of order exception from TotalOrderPartitioner, I dug into the source of the org.apache.hadoop.mapreduce.lib.partition.InputSampler class and found that the while loop in line 335 is never entered.

      The reason is that the variable last is always smaller than k and the loop condition says that last must be larger or equal than k.

      I am not completely sure of the initial purpose of this loop, if it is what I assume, namely reducing the occurrences of identical split points, then I would change it like so:

        while (last != -1 && k > last && comparator.compare(samples[last], samples[k]) == 0)

      {         --k;              }

      However, this only slightly mitigates the problem, since a highly skewed distribution of keys still might lead to identical split points so that potentially further measures might be necessary?

      Attachments

        Activity

          People

            Unassigned Unassigned
            o.hummel Oliver Hummel
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: