You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mapreduce-commits@hadoop.apache.org by cd...@apache.org on 2011/05/26 04:30:14 UTC
svn commit: r1127760 - in /hadoop/mapreduce/branches/MR-279: CHANGES.txt
yarn/yarn-server/yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/DeletionService.java
Author: cdouglas
Date: Thu May 26 02:30:14 2011
New Revision: 1127760
URL: http://svn.apache.org/viewvc?rev=1127760&view=rev
Log:
Add debug config for delaying delete of local files
Modified:
hadoop/mapreduce/branches/MR-279/CHANGES.txt
hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/DeletionService.java
Modified: hadoop/mapreduce/branches/MR-279/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/CHANGES.txt?rev=1127760&r1=1127759&r2=1127760&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/CHANGES.txt (original)
+++ hadoop/mapreduce/branches/MR-279/CHANGES.txt Thu May 26 02:30:14 2011
@@ -4,6 +4,8 @@ Trunk (unreleased changes)
MAPREDUCE-279
+ Add debug config for delaying delete of local files. (cdouglas)
+
Fixing race condition leader to hung jobs in scheduler negotiator (mahadev)
Add debug statements for AM not launching (mahadev)
Modified: hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/DeletionService.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/DeletionService.java?rev=1127760&r1=1127759&r2=1127760&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/DeletionService.java (original)
+++ hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/DeletionService.java Thu May 26 02:30:14 2011
@@ -20,7 +20,8 @@ package org.apache.hadoop.yarn.server.no
import java.io.IOException;
import java.util.concurrent.LinkedBlockingQueue;
-import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.ScheduledThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
import static java.util.concurrent.TimeUnit.*;
import org.apache.hadoop.fs.Path;
@@ -38,11 +39,13 @@ import org.apache.commons.logging.LogFac
public class DeletionService extends AbstractService {
static final Log LOG = LogFactory.getLog(DeletionService.class);
+ /** Delay before deleting resource to ease debugging of NM issues */
+ static final String DEBUG_DELAY_SEC =
+ NMConfig.NM_PREFIX + "debug.delete.delay";
- private final ThreadPoolExecutor sched =
- new ThreadPoolExecutor(1, DEFAULT_MAX_DELETE_THREADS, 60L, SECONDS,
- new LinkedBlockingQueue<Runnable>());
+ private int debugDelay;
private final ContainerExecutor exec;
+ private final ScheduledThreadPoolExecutor sched;
private final FileContext lfs = getLfs();
static final FileContext getLfs() {
try {
@@ -53,8 +56,17 @@ public class DeletionService extends Abs
}
public DeletionService(ContainerExecutor exec) {
+ this(exec, new ScheduledThreadPoolExecutor(1));
+ sched.setMaximumPoolSize(DEFAULT_MAX_DELETE_THREADS);
+ sched.setKeepAliveTime(60L, SECONDS);
+ }
+
+ public DeletionService(ContainerExecutor exec,
+ ScheduledThreadPoolExecutor sched) {
super(DeletionService.class.getName());
this.exec = exec;
+ this.sched = sched;
+ this.debugDelay = 0;
}
/**
@@ -64,7 +76,8 @@ public class DeletionService extends Abs
*/
public void delete(String user, Path subDir, Path... baseDirs) {
// TODO if parent owned by NM, rename within parent inline
- sched.submit(new FileDeletion(user, subDir, baseDirs));
+ sched.schedule(new FileDeletion(user, subDir, baseDirs),
+ debugDelay, TimeUnit.SECONDS);
}
@Override
@@ -72,6 +85,7 @@ public class DeletionService extends Abs
if (conf != null) {
sched.setMaximumPoolSize(
conf.getInt(NM_MAX_DELETE_THREADS, DEFAULT_MAX_DELETE_THREADS));
+ debugDelay = conf.getInt(DEBUG_DELAY_SEC, 0);
}
super.init(conf);
}