[ 
https://issues.apache.org/jira/browse/HADOOP-657?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12622464#action_12622464
 ] 

Jothi Padmanabhan commented on HADOOP-657:
------------------------------------------

The reduce task for sortvalidator , 500 nodes, seem to get stuck with the 
following message (several of them), even though the sort itself succeeded 
fine. Could there be a bug in the estimation of the reduce input size?
 
2008-08-14 07:56:16,507 WARN org.apache.hadoop.mapred.JobInProgress: No room 
for reduce task. Node tracker_xxx.com:xxx..com/<IPADDR>:58251 has 204889718784 
bytes free; but we expect reduce input to take 1004644589190
2008-08-14 07:56:16,508 INFO org.apache.hadoop.mapred.ResourceEstimator: 
estimate map will take 150463470 bytes. (blowup = 2*0.04748320346406185)
346406185)


> Free temporary space should be modelled better
> ----------------------------------------------
>
>                 Key: HADOOP-657
>                 URL: https://issues.apache.org/jira/browse/HADOOP-657
>             Project: Hadoop Core
>          Issue Type: Improvement
>          Components: mapred
>    Affects Versions: 0.17.0
>            Reporter: Owen O'Malley
>            Assignee: Ari Rabkin
>             Fix For: 0.19.0
>
>         Attachments: clean_spaceest.patch, diskspaceest.patch, 
> diskspaceest_v2.patch, diskspaceest_v3.patch, diskspaceest_v4.patch, 
> spaceest_717.patch
>
>
> Currently, there is a configurable size that must be free for a task tracker 
> to accept a new task. However, that isn't a very good model of what the task 
> is likely to take. I'd like to propose:
> Map tasks:  totalInputSize * conf.getFloat("map.output.growth.factor", 1.0) / 
> numMaps
> Reduce tasks: totalInputSize * 2 * conf.getFloat("map.output.growth.factor", 
> 1.0) / numReduces
> where totalInputSize is the size of all the maps inputs for the given job.
> To start a new task, 
>   newTaskAllocation + (sum over running tasks of (1.0 - done) * allocation) 
> >= 
>        free disk * conf.getFloat("mapred.max.scratch.allocation", 0.90);
> So in English, we will model the expected sizes of tasks and only task tasks 
> that should leave us a 10% margin. With:
> map.output.growth.factor -- the relative size of the transient data relative 
> to the map inputs
> mapred.max.scratch.allocation -- the maximum amount of our disk we want to 
> allocate to tasks.

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