YARN-2803. MR distributed cache not working correctly on Windows after NodeManager privileged account changes. Contributed by Craig Welch.
(cherry picked from commit 06b797947c
)
This commit is contained in:
parent
7b19079657
commit
c16f718293
|
@ -873,6 +873,9 @@ Release 2.6.0 - UNRELEASED
|
||||||
|
|
||||||
YARN-2827. Fixed bugs in "yarn queue" CLI. (Wangda Tan via vinodkv).
|
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
|
Release 2.5.2 - UNRELEASED
|
||||||
|
|
||||||
INCOMPATIBLE CHANGES
|
INCOMPATIBLE CHANGES
|
||||||
|
|
|
@ -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.container.ContainerState;
|
||||||
import org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.ContainerLocalizer;
|
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.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.server.nodemanager.util.ProcessIdFileReader;
|
||||||
import org.apache.hadoop.yarn.util.Apps;
|
import org.apache.hadoop.yarn.util.Apps;
|
||||||
import org.apache.hadoop.yarn.util.AuxiliaryServiceHelper;
|
import org.apache.hadoop.yarn.util.AuxiliaryServiceHelper;
|
||||||
|
@ -767,8 +768,17 @@ public class ContainerLaunch implements Callable<Integer> {
|
||||||
System.getenv());
|
System.getenv());
|
||||||
mergedEnv.putAll(environment);
|
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(
|
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
|
// In a secure cluster the classpath jar must be localized to grant access
|
||||||
Path localizedClassPathJar = exec.localizeClasspathJar(
|
Path localizedClassPathJar = exec.localizeClasspathJar(
|
||||||
new Path(jarCp[0]), pwd, container.getUser());
|
new Path(jarCp[0]), pwd, container.getUser());
|
||||||
|
|
Loading…
Reference in New Issue