Map-side sort is hampered by io.sort.record.percent
---------------------------------------------------

                 Key: HADOOP-5108
                 URL: https://issues.apache.org/jira/browse/HADOOP-5108
             Project: Hadoop Core
          Issue Type: Bug
          Components: mapred
    Affects Versions: 0.20.0
            Reporter: Arun C Murthy


Currently io.sort.record.percent is a fairly obscure, per-job configurable, 
expert-level parameter which controls how much accounting space is available 
for records in the map-side sort buffer (io.sort.mb). Typically values for 
io.sort.mb (100) and io.sort.record.percent (0.05) imply that we can store 
~350,000 records in the buffer before necessitating a sort/combine/spill.

However for many applications which deal with small records e.g. the 
world-famous wordcount and it's family this implies we can only use 5-10% of 
io.sort.mb i.e. (5-10M) before we spill inspite of having _much_ more memory 
available in the sort-buffer. The word-count for e.g. results in ~12 spills 
(given hdfs block size of 64M). The presence of a combiner exacerbates the 
problem by piling serialization/deserialization of records too...

Sure, jobs can configure io.sort.record.percent, but it's tedious and obscure; 
we really can do better by getting the framework to automagically pick it by 
using all available memory (upto io.sort.mb) for either the data or accounting.

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