Author: mattf
Date: Sun Feb 12 10:48:58 2012
New Revision: 1243233
URL: http://svn.apache.org/viewvc?rev=1243233&view=rev
Log:
merged MAPREDUCE-3343 to branch-1.0.
Modified:
hadoop/common/branches/branch-1.0/CHANGES.txt
hadoop/common/branches/branch-1.0/src/mapred/org/apache/hadoop/filecache/TrackerDistributedCacheManager.java
hadoop/common/branches/branch-1.0/src/mapred/org/apache/hadoop/mapred/TaskTracker.java
hadoop/common/branches/branch-1.0/src/test/org/apache/hadoop/filecache/TestTrackerDistributedCacheManager.java
Modified: hadoop/common/branches/branch-1.0/CHANGES.txt
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-1.0/CHANGES.txt?rev=1243233&r1=1243232&r2=1243233&view=diff
==============================================================================
--- hadoop/common/branches/branch-1.0/CHANGES.txt (original)
+++ hadoop/common/branches/branch-1.0/CHANGES.txt Sun Feb 12 10:48:58 2012
@@ -43,6 +43,9 @@ Release 1.0.1 - 2012.02.12
Double.MAX_VALUE) to avoid making Ganglia's gmetad core. (Varun Kapoor
via mattf)
+ MAPREDUCE-3343. TaskTracker Out of Memory because of distributed cache.
+ (Zhao Yunjiong).
+
Release 1.0.0 - 2011.12.15
NEW FEATURES
Modified:
hadoop/common/branches/branch-1.0/src/mapred/org/apache/hadoop/filecache/TrackerDistributedCacheManager.java
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-1.0/src/mapred/org/apache/hadoop/filecache/TrackerDistributedCacheManager.java?rev=1243233&r1=1243232&r2=1243233&view=diff
==============================================================================
---
hadoop/common/branches/branch-1.0/src/mapred/org/apache/hadoop/filecache/TrackerDistributedCacheManager.java
(original)
+++
hadoop/common/branches/branch-1.0/src/mapred/org/apache/hadoop/filecache/TrackerDistributedCacheManager.java
Sun Feb 12 10:48:58 2012
@@ -664,6 +664,18 @@ public class TrackerDistributedCacheMana
}
}
+ public void removeTaskDistributedCacheManager(JobID jobId) {
+ jobArchives.remove(jobId);
+ }
+
+ /*
+ * This method is called from unit tests.
+ */
+ protected TaskDistributedCacheManager getTaskDistributedCacheManager(
+ JobID jobId) {
+ return jobArchives.get(jobId);
+ }
+
/**
* Determines timestamps of files to be cached, and stores those
* in the configuration. This is intended to be used internally by JobClient
Modified:
hadoop/common/branches/branch-1.0/src/mapred/org/apache/hadoop/mapred/TaskTracker.java
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-1.0/src/mapred/org/apache/hadoop/mapred/TaskTracker.java?rev=1243233&r1=1243232&r2=1243233&view=diff
==============================================================================
---
hadoop/common/branches/branch-1.0/src/mapred/org/apache/hadoop/mapred/TaskTracker.java
(original)
+++
hadoop/common/branches/branch-1.0/src/mapred/org/apache/hadoop/mapred/TaskTracker.java
Sun Feb 12 10:48:58 2012
@@ -2074,8 +2074,9 @@ public class TaskTracker implements MRCo
runningJobs.remove(jobId);
}
getJobTokenSecretManager().removeTokenForJob(jobId.toString());
- }
-
+ distributedCacheManager.removeTaskDistributedCacheManager(jobId);
+ }
+
/**
* This job's files are no longer needed on this TT, remove them.
*
Modified:
hadoop/common/branches/branch-1.0/src/test/org/apache/hadoop/filecache/TestTrackerDistributedCacheManager.java
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-1.0/src/test/org/apache/hadoop/filecache/TestTrackerDistributedCacheManager.java?rev=1243233&r1=1243232&r2=1243233&view=diff
==============================================================================
---
hadoop/common/branches/branch-1.0/src/test/org/apache/hadoop/filecache/TestTrackerDistributedCacheManager.java
(original)
+++
hadoop/common/branches/branch-1.0/src/test/org/apache/hadoop/filecache/TestTrackerDistributedCacheManager.java
Sun Feb 12 10:48:58 2012
@@ -1137,4 +1137,23 @@ public class TestTrackerDistributedCache
}
}
+ public void testRemoveTaskDistributedCacheManager() throws Exception {
+ if (!canRun()) {
+ return;
+ }
+ TrackerDistributedCacheManager manager = new
TrackerDistributedCacheManager(
+ conf, taskController);
+ JobID jobId = new JobID("jobtracker", 1);
+ manager.newTaskDistributedCacheManager(jobId, conf);
+
+ TaskDistributedCacheManager taskDistributedCacheManager = manager
+ .getTaskDistributedCacheManager(jobId);
+ assertNotNull(taskDistributedCacheManager);
+
+ manager.removeTaskDistributedCacheManager(jobId);
+
+ taskDistributedCacheManager =
manager.getTaskDistributedCacheManager(jobId);
+ assertNull(taskDistributedCacheManager);
+ }
+
}