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 6858eb3..5232154 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 @@ -1090,7 +1090,13 @@ private void cleanUpLocalDir(FileContext lfs, DeletionService del) { private void renameLocalDir(FileContext lfs, String localDir, String localSubDir, long currentTimeStamp) { try { - lfs.rename(new Path(localDir, localSubDir), new Path( + Path subDirPath = new Path(localDir, localSubDir); + RemoteIterator subDirStatus = lfs.listStatus(subDirPath); + if (subDirStatus != null && !subDirStatus.hasNext()) { + // Skip the renaming when the given localSubDir is empty + return; + } + lfs.rename(subDirPath, new Path( localDir, localSubDir + "_DEL_" + currentTimeStamp)); } catch (FileNotFoundException ex) { // No need to handle this exception