1
0
Kaynağa Gözat

YARN-2682. Updated WindowsSecureContainerExecutor to not use DefaultContainerExecutor#getFirstApplicationDir and use getWorkingDir() instead. Contributed by Zhihai Xu
(cherry picked from commit 0fd0ebae645e671699f6a6a56a012ebe6dfb5b2a)

Conflicts:
hadoop-yarn-project/CHANGES.txt
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/DefaultContainerExecutor.java

Jian He 10 yıl önce
ebeveyn
işleme
a057552468

+ 4 - 0
hadoop-yarn-project/CHANGES.txt

@@ -321,6 +321,10 @@ Release 2.6.0 - UNRELEASED
     YARN-2709. Made timeline client getDelegationToken API retry if ConnectException
     happens. (Li Lu via zjshen)
 
+    YARN-2682. Updated WindowsSecureContainerExecutor to not use
+    DefaultContainerExecutor#getFirstApplicationDir and use getWorkingDir()
+    instead. (Zhihai Xu via jianhe) 
+
   OPTIMIZATIONS
 
   BUG FIXES

+ 1 - 6
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/DefaultContainerExecutor.java

@@ -462,11 +462,6 @@ public class DefaultContainerExecutor extends ContainerExecutor {
    * $logdir/$user/$appId */
   static final short LOGDIR_PERM = (short)0710;
 
-  protected Path getFirstApplicationDir(List<String> localDirs, String user,
-      String appId) {
-    return getApplicationDir(new Path(localDirs.get(0)), user, appId);
-  }
-
   private long getDiskFreeSpace(Path base) throws IOException {
     return lfs.getFsStatus(base).getRemaining();
   }
@@ -497,7 +492,7 @@ public class DefaultContainerExecutor extends ContainerExecutor {
     }
   }
 
-  private Path getWorkingDir(List<String> localDirs, String user,
+  protected Path getWorkingDir(List<String> localDirs, String user,
       String appId) throws IOException {
     Path appStorageDir = null;
     long totalAvailable = 0L;

+ 2 - 3
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/WindowsSecureContainerExecutor.java

@@ -115,9 +115,8 @@ public class WindowsSecureContainerExecutor extends DefaultContainerExecutor {
      createUserCacheDirs(localDirs, user);
      createAppDirs(localDirs, user, appId);
      createAppLogDirs(appId, logDirs, user);
-     
-     // TODO: Why pick first app dir. The same in LCE why not random?
-     Path appStorageDir = getFirstApplicationDir(localDirs, user, appId);
+
+     Path appStorageDir = getWorkingDir(localDirs, user, appId);
 
      String tokenFn = String.format(ContainerLocalizer.TOKEN_FILE_NAME_FMT, locId);
      Path tokenDst = new Path(appStorageDir, tokenFn);