hadoop-mapreduce-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alejandro Abdelnur (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (MAPREDUCE-3789) CapacityTaskScheduler may perform unnecessary reservations in heterogenous tracker environments
Date Fri, 03 Feb 2012 18:51:55 GMT

    [ https://issues.apache.org/jira/browse/MAPREDUCE-3789?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13199936#comment-13199936
] 

Alejandro Abdelnur commented on MAPREDUCE-3789:
-----------------------------------------------

Patch looks good, tests pass. one minor comment, the method

{code}
  private static int getTTMaxSlotsForType(TaskTrackerStatus status, TaskType type) {
    if (type == TaskType.MAP) {
      return status.getMaxMapSlots();
    }
    return status.getMaxReduceSlots();
  }
{code}

could be refactored into

{code}
  private static int getTTMaxSlotsForType(TaskTrackerStatus status, TaskType type) {
    return (type == TaskType.MAP) ? status.getMaxMapSlots() : status.getMaxReduceSlots();
  }
{code}

IMO it would be cleaner.

Have you tested this in a cluster?

                
> CapacityTaskScheduler may perform unnecessary reservations in heterogenous tracker environments
> -----------------------------------------------------------------------------------------------
>
>                 Key: MAPREDUCE-3789
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-3789
>             Project: Hadoop Map/Reduce
>          Issue Type: Bug
>          Components: contrib/capacity-sched, scheduler
>    Affects Versions: 1.1.0
>            Reporter: Harsh J
>            Assignee: Harsh J
>            Priority: Critical
>         Attachments: MAPREDUCE-3789.patch, MAPREDUCE-3789.patch
>
>
> Briefly, to reproduce:
> * Run JT with CapacityTaskScheduler [Say, Cluster max map = 8G, Cluster map = 2G]
> * Run two TTs but with varied capacity, say, one with 4 map slot, another with 3 map
slots.
> * Run a job with two tasks, each demanding mem worth 4 slots at least (Map mem = 7G or
so).
> * Job will begin running on TT #1, but will also end up reserving the 3 slots on TT #2
cause it does not check for the maximum limit of slots when reserving (as it goes greedy,
and hopes to gain more slots in future).
> * Other jobs that could've run on the TT #2 over 3 slots are thereby blocked out due
to this illogical reservation.
> I've not yet tested MR2 for this so feel free to weigh in if it affects MR2 as well.
> For MR1, I've attached a test case initially to indicate this. A fix that checks reservations
vs. max slots, to follow.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message