You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by vi...@apache.org on 2014/11/09 17:54:20 UTC
[18/30] hadoop git commit: YARN-2803. MR distributed cache not
working correctly on Windows after NodeManager privileged account changes.
Contributed by Craig Welch.
YARN-2803. MR distributed cache not working correctly on Windows after NodeManager privileged account changes. Contributed by Craig Welch.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/06b79794
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/06b79794
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/06b79794
Branch: refs/heads/HDFS-EC
Commit: 06b797947c980d7d21864eb8b700cf565756aac1
Parents: a71e930
Author: cnauroth <cn...@apache.org>
Authored: Fri Nov 7 12:29:39 2014 -0800
Committer: cnauroth <cn...@apache.org>
Committed: Fri Nov 7 12:29:39 2014 -0800
----------------------------------------------------------------------
hadoop-yarn-project/CHANGES.txt | 3 +++
.../containermanager/launcher/ContainerLaunch.java | 12 +++++++++++-
2 files changed, 14 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/06b79794/hadoop-yarn-project/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt
index a26bfb2..97b67b5 100644
--- a/hadoop-yarn-project/CHANGES.txt
+++ b/hadoop-yarn-project/CHANGES.txt
@@ -900,6 +900,9 @@ Release 2.6.0 - UNRELEASED
YARN-2827. Fixed bugs in "yarn queue" CLI. (Wangda Tan via vinodkv)
+ YARN-2803. MR distributed cache not working correctly on Windows after
+ NodeManager privileged account changes. (Craig Welch via cnauroth)
+
Release 2.5.2 - UNRELEASED
INCOMPATIBLE CHANGES
http://git-wip-us.apache.org/repos/asf/hadoop/blob/06b79794/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/launcher/ContainerLaunch.java
----------------------------------------------------------------------
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/launcher/ContainerLaunch.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/launcher/ContainerLaunch.java
index 57e3bb9..8fc5ea3 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/launcher/ContainerLaunch.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/launcher/ContainerLaunch.java
@@ -71,6 +71,7 @@ import org.apache.hadoop.yarn.server.nodemanager.containermanager.container.Cont
import org.apache.hadoop.yarn.server.nodemanager.containermanager.container.ContainerState;
import org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.ContainerLocalizer;
import org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.ResourceLocalizationService;
+import org.apache.hadoop.yarn.server.nodemanager.WindowsSecureContainerExecutor;
import org.apache.hadoop.yarn.server.nodemanager.util.ProcessIdFileReader;
import org.apache.hadoop.yarn.util.Apps;
import org.apache.hadoop.yarn.util.AuxiliaryServiceHelper;
@@ -767,8 +768,17 @@ public class ContainerLaunch implements Callable<Integer> {
System.getenv());
mergedEnv.putAll(environment);
+ // this is hacky and temporary - it's to preserve the windows secure
+ // behavior but enable non-secure windows to properly build the class
+ // path for access to job.jar/lib/xyz and friends (see YARN-2803)
+ Path jarDir;
+ if (exec instanceof WindowsSecureContainerExecutor) {
+ jarDir = nmPrivateClasspathJarDir;
+ } else {
+ jarDir = pwd;
+ }
String[] jarCp = FileUtil.createJarWithClassPath(
- newClassPath.toString(), nmPrivateClasspathJarDir, pwd, mergedEnv);
+ newClassPath.toString(), jarDir, pwd, mergedEnv);
// In a secure cluster the classpath jar must be localized to grant access
Path localizedClassPathJar = exec.localizeClasspathJar(
new Path(jarCp[0]), pwd, container.getUser());