|
@@ -1462,7 +1462,8 @@ class JobInProgress {
|
|
|
*
|
|
|
* @param taskTracker task-tracker on which a task failed
|
|
|
*/
|
|
|
- void addTrackerTaskFailure(String trackerName, TaskTracker taskTracker) {
|
|
|
+ synchronized void addTrackerTaskFailure(String trackerName,
|
|
|
+ TaskTracker taskTracker) {
|
|
|
if (flakyTaskTrackers < (clusterSize * CLUSTER_BLACKLIST_PERCENT)) {
|
|
|
String trackerHostName = convertTrackerNameToHostName(trackerName);
|
|
|
|
|
@@ -1478,8 +1479,12 @@ class JobInProgress {
|
|
|
|
|
|
// Cancel reservations if appropriate
|
|
|
if (taskTracker != null) {
|
|
|
- taskTracker.unreserveSlots(TaskType.MAP, this);
|
|
|
- taskTracker.unreserveSlots(TaskType.REDUCE, this);
|
|
|
+ if (trackersReservedForMaps.containsKey(taskTracker)) {
|
|
|
+ taskTracker.unreserveSlots(TaskType.MAP, this);
|
|
|
+ }
|
|
|
+ if (trackersReservedForReduces.containsKey(taskTracker)) {
|
|
|
+ taskTracker.unreserveSlots(TaskType.REDUCE, this);
|
|
|
+ }
|
|
|
}
|
|
|
LOG.info("TaskTracker at '" + trackerHostName + "' turned 'flaky'");
|
|
|
}
|
|
@@ -2841,4 +2846,11 @@ class JobInProgress {
|
|
|
return Values.REDUCE.name();
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Test method to set the cluster sizes
|
|
|
+ */
|
|
|
+ void setClusterSize(int clusterSize) {
|
|
|
+ this.clusterSize = clusterSize;
|
|
|
+ }
|
|
|
}
|