From 01af29106a1603eff9f4e622a6919d49cb0bfa65 Mon Sep 17 00:00:00 2001 From: Harsh J Date: Wed, 15 Apr 2015 09:41:43 +0530 Subject: [PATCH] YARN-3462. Patches applied for YARN-2424 are inconsistent between trunk and branch-2. Contributed by Naganarasimha G R. --- hadoop-yarn-project/CHANGES.txt | 3 +++ .../src/main/resources/yarn-default.xml | 21 ++++++++++--------- .../nodemanager/LinuxContainerExecutor.java | 12 +++++++---- 3 files changed, 22 insertions(+), 14 deletions(-) diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt index f77aafde251..b5e850e4637 100644 --- a/hadoop-yarn-project/CHANGES.txt +++ b/hadoop-yarn-project/CHANGES.txt @@ -165,6 +165,9 @@ Release 2.7.1 - UNRELEASED BUG FIXES + YARN-3462. Patches applied for YARN-2424 are inconsistent between + trunk and branch-2. (Naganarasimha G R via harsh) + Release 2.7.0 - UNRELEASED INCOMPATIBLE CHANGES diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml index a469cae420e..66400c8831f 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml @@ -1036,21 +1036,22 @@ - This determines which of the two modes that LCE should use on a non-secure - cluster. If this value is set to true, then all containers will be launched as the user - specified in yarn.nodemanager.linux-container-executor.nonsecure-mode.local-user. If - this value is set to false, then containers will run as the user who submitted the - application. - + This determines which of the two modes that LCE should use on + a non-secure cluster. If this value is set to true, then all containers + will be launched as the user specified in + yarn.nodemanager.linux-container-executor.nonsecure-mode.local-user. If + this value is set to false, then containers will run as the user who + submitted the application. yarn.nodemanager.linux-container-executor.nonsecure-mode.limit-users true - The UNIX user that containers will run as when Linux-container-executor - is used in nonsecure mode (a use case for this is using cgroups) if the - yarn.nodemanager.linux-container-executor.nonsecure-mode.limit-users is set - to true. + The UNIX user that containers will run as when + Linux-container-executor is used in nonsecure mode (a use case for this + is using cgroups) if the + yarn.nodemanager.linux-container-executor.nonsecure-mode.limit-users is + set to true. yarn.nodemanager.linux-container-executor.nonsecure-mode.local-user nobody diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/LinuxContainerExecutor.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/LinuxContainerExecutor.java index 59b35cead7f..fac71d34a3f 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/LinuxContainerExecutor.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/LinuxContainerExecutor.java @@ -59,9 +59,8 @@ public class LinuxContainerExecutor extends ContainerExecutor { private LCEResourcesHandler resourcesHandler; private boolean containerSchedPriorityIsSet = false; private int containerSchedPriorityAdjustment = 0; - private boolean containerLimitUsers = YarnConfiguration.DEFAULT_NM_NONSECURE_MODE_LIMIT_USERS; - - + private boolean containerLimitUsers; + @Override public void setConf(Configuration conf) { super.setConf(conf); @@ -71,6 +70,7 @@ public class LinuxContainerExecutor extends ContainerExecutor { conf.getClass(YarnConfiguration.NM_LINUX_CONTAINER_RESOURCES_HANDLER, DefaultLCEResourcesHandler.class, LCEResourcesHandler.class), conf); resourcesHandler.setConf(conf); + if (conf.get(YarnConfiguration.NM_CONTAINER_EXECUTOR_SCHED_PRIORITY) != null) { containerSchedPriorityIsSet = true; containerSchedPriorityAdjustment = conf @@ -83,9 +83,13 @@ public class LinuxContainerExecutor extends ContainerExecutor { nonsecureLocalUserPattern = Pattern.compile( conf.get(YarnConfiguration.NM_NONSECURE_MODE_USER_PATTERN_KEY, YarnConfiguration.DEFAULT_NM_NONSECURE_MODE_USER_PATTERN)); - containerLimitUsers=conf.getBoolean( + containerLimitUsers = conf.getBoolean( YarnConfiguration.NM_NONSECURE_MODE_LIMIT_USERS, YarnConfiguration.DEFAULT_NM_NONSECURE_MODE_LIMIT_USERS); + if (!containerLimitUsers) { + LOG.warn(YarnConfiguration.NM_NONSECURE_MODE_LIMIT_USERS + + ": impersonation without authentication enabled"); + } } void verifyUsernamePattern(String user) {