Issue Details (XML | Word | Printable)

Key: HADOOP-3136
Type: Improvement Improvement
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Arun C Murthy
Reporter: Devaraj Das
Votes: 0
Watchers: 18
Operations

If you were logged in you would be able to see more operations.
Hadoop Common

Assign multiple tasks per TaskTracker heartbeat

Created: 31/Mar/08 01:06 PM   Updated: 08/Jul/09 04:52 PM
Return to search
Component/s: None
Affects Version/s: None
Fix Version/s: 0.20.0

Time Tracking:
Not Specified

File Attachments:
  Size
Text File Licensed for inclusion in ASF works HADOOP-3136_0_20080805.patch 2008-08-05 09:47 AM Arun C Murthy 8 kB
Text File Licensed for inclusion in ASF works HADOOP-3136_1_20080809.patch 2008-08-09 07:30 PM Arun C Murthy 7 kB
Text File Licensed for inclusion in ASF works HADOOP-3136_2_20080911.patch 2008-09-12 05:25 AM Arun C Murthy 11 kB
Text File Licensed for inclusion in ASF works HADOOP-3136_3_20081211.patch 2008-12-12 09:44 AM Arun C Murthy 24 kB
Text File Licensed for inclusion in ASF works HADOOP-3136_4_20081212.patch 2008-12-13 12:48 AM Arun C Murthy 41 kB
Text File Licensed for inclusion in ASF works HADOOP-3136_5_20081215.patch 2008-12-15 11:36 PM Arun C Murthy 45 kB

Resolution Date: 16/Dec/08 09:56 AM


 Description  « Hide
In today's logic of finding a new task, we assign only one task per heartbeat.

We probably could give the tasktracker multiple tasks subject to the max number of free slots it has - for maps we could assign it data local tasks. We could probably run some logic to decide what to give it if we run out of data local tasks (e.g., tasks from overloaded racks, tasks that have least locality, etc.). In addition to maps, if it has reduce slots free, we could give it reduce task(s) as well. Again for reduces we could probably run some logic to give more tasks to nodes that are closer to nodes running most maps (assuming data generated is proportional to the number of maps). For e.g., if rack1 has 70% of the input splits, and we know that most maps are data/rack local, we try to schedule ~70% of the reducers there.

Thoughts?



 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Repository Revision Date User Message
ASF #727001 Tue Dec 16 09:53:37 UTC 2008 acmurthy HADOOP-3136. Fixed the default scheduler to assign multiple tasks to each tasktracker per heartbeat, when feasible. To ensure locality isn't hurt too badly, the scheudler will not assign more than one off-switch task per heartbeat. The heartbeat interval is also halved since the task-tracker is fixed to no longer send out heartbeats on each task completion. A slow-start for scheduling reduces is introduced to ensure that reduces aren't started till sufficient number of maps are done, else reduces of jobs whose maps aren't scheduled might swamp the cluster.
Files Changed
MODIFY /hadoop/core/trunk/src/mapred/mapred-default.xml
MODIFY /hadoop/core/trunk/src/test/org/apache/hadoop/mapred/TestJobTrackerRestart.java
MODIFY /hadoop/core/trunk/src/test/org/apache/hadoop/mapred/TestLimitTasksPerJobTaskScheduler.java
MODIFY /hadoop/core/trunk/src/mapred/org/apache/hadoop/mapred/LimitTasksPerJobTaskScheduler.java
MODIFY /hadoop/core/trunk/src/test/org/apache/hadoop/mapred/TestJobQueueTaskScheduler.java
MODIFY /hadoop/core/trunk/src/mapred/org/apache/hadoop/mapred/TaskTracker.java
MODIFY /hadoop/core/trunk/CHANGES.txt
MODIFY /hadoop/core/trunk/src/mapred/org/apache/hadoop/mapred/JobQueueTaskScheduler.java
MODIFY /hadoop/core/trunk/src/test/org/apache/hadoop/mapred/TestJobInProgress.java
MODIFY /hadoop/core/trunk/src/mapred/org/apache/hadoop/mapred/JobInProgress.java
MODIFY /hadoop/core/trunk/src/mapred/org/apache/hadoop/mapred/MRConstants.java
MODIFY /hadoop/core/trunk/src/mapred/org/apache/hadoop/mapred/JobTracker.java

Repository Revision Date User Message
ASF #727002 Tue Dec 16 09:56:14 UTC 2008 acmurthy Merge -r 727000:727001 from trunk to BRANCH-0.20 to fix HADOOP-3136.
Files Changed
MODIFY /hadoop/core/branches/branch-0.20/CHANGES.txt
MODIFY /hadoop/core/branches/branch-0.20/src/test/org/apache/hadoop/mapred/TestJobTrackerRestart.java
MODIFY /hadoop/core/branches/branch-0.20/src/test/org/apache/hadoop/mapred/TestLimitTasksPerJobTaskScheduler.java
MODIFY /hadoop/core/branches/branch-0.20/src/mapred/org/apache/hadoop/mapred/LimitTasksPerJobTaskScheduler.java
MODIFY /hadoop/core/branches/branch-0.20/src/test/org/apache/hadoop/mapred/TestJobQueueTaskScheduler.java
MODIFY /hadoop/core/branches/branch-0.20/src/mapred/org/apache/hadoop/mapred/TaskTracker.java
MODIFY /hadoop/core/branches/branch-0.20/src/mapred/org/apache/hadoop/mapred/JobQueueTaskScheduler.java
MODIFY /hadoop/core/branches/branch-0.20/src/test/org/apache/hadoop/mapred/TestJobInProgress.java
MODIFY /hadoop/core/branches/branch-0.20/src/mapred/org/apache/hadoop/mapred/JobInProgress.java
MODIFY /hadoop/core/branches/branch-0.20/src/mapred/org/apache/hadoop/mapred/JobTracker.java
MODIFY /hadoop/core/branches/branch-0.20
MODIFY /hadoop/core/branches/branch-0.20/src/mapred/org/apache/hadoop/mapred/MRConstants.java
MODIFY /hadoop/core/branches/branch-0.20/src/mapred/mapred-default.xml