diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/localizer/ResourceLocalizationService.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/localizer/ResourceLocalizationService.java index 71f48acb371..7c00722a411 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/localizer/ResourceLocalizationService.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/localizer/ResourceLocalizationService.java @@ -1028,6 +1028,8 @@ public void run() { private final RecordFactory recordFactory = RecordFactoryProvider.getRecordFactory(getConfig()); + private final String tokenFileName; + LocalizerRunner(LocalizerContext context, String localizerId) { super("LocalizerRunner for " + localizerId); this.context = context; @@ -1035,8 +1037,9 @@ public void run() { this.pending = Collections .synchronizedList(new ArrayList()); - this.scheduled = - new HashMap(); + this.scheduled = new HashMap<>(); + tokenFileName = String.format(ContainerLocalizer.TOKEN_FILE_NAME_FMT, + localizerId + Long.toHexString(System.currentTimeMillis())); } public void addResource(LocalizerResourceRequestEvent request) { @@ -1231,11 +1234,8 @@ public void run() { Throwable exception = null; try { // Get nmPrivateDir - nmPrivateCTokensPath = - dirsHandler.getLocalPathForWrite( - NM_PRIVATE_DIR + Path.SEPARATOR - + String.format(ContainerLocalizer.TOKEN_FILE_NAME_FMT, - localizerId)); + nmPrivateCTokensPath = dirsHandler.getLocalPathForWrite( + NM_PRIVATE_DIR + Path.SEPARATOR + tokenFileName); // 0) init queue, etc. // 1) write credentials to private dir diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/TestContainerManager.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/TestContainerManager.java index d179459b28d..f78bb6ec8cf 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/TestContainerManager.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/TestContainerManager.java @@ -1200,7 +1200,7 @@ public void testContainerLaunchAndExitFailure() throws IOException, // While the container is running, localize new resources. // Verify the symlink is created properly @Test - public void testLocalingResourceWhileContainerRunning() throws Exception { + public void testLocalizingResourceWhileContainerRunning() throws Exception { // Real del service delSrvc = new DeletionService(exec); delSrvc.init(conf);