diff --git hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/MRAppMaster.java hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/MRAppMaster.java index 45d6e9e..850a67e 100644 --- hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/MRAppMaster.java +++ hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/MRAppMaster.java @@ -116,6 +116,7 @@ import org.apache.hadoop.yarn.YarnException; import org.apache.hadoop.yarn.YarnUncaughtExceptionHandler; import org.apache.hadoop.yarn.api.ApplicationConstants; +import org.apache.hadoop.yarn.api.ApplicationConstants.Environment; import org.apache.hadoop.yarn.api.records.ApplicationAttemptId; import org.apache.hadoop.yarn.api.records.ApplicationId; import org.apache.hadoop.yarn.api.records.ContainerId; @@ -1270,9 +1271,9 @@ public static void main(String[] args) { try { Thread.setDefaultUncaughtExceptionHandler(new YarnUncaughtExceptionHandler()); String containerIdStr = - System.getenv(ApplicationConstants.AM_CONTAINER_ID_ENV); - String nodeHostString = System.getenv(ApplicationConstants.NM_HOST_ENV); - String nodePortString = System.getenv(ApplicationConstants.NM_PORT_ENV); + System.getenv(Environment.CONTAINER_ID.name()); + String nodeHostString = System.getenv(Environment.NM_HOST.name()); + String nodePortString = System.getenv(Environment.NM_PORT.name()); String nodeHttpPortString = System.getenv(ApplicationConstants.NM_HTTP_PORT_ENV); String appSubmitTimeStr = @@ -1281,9 +1282,9 @@ public static void main(String[] args) { System.getenv(ApplicationConstants.MAX_APP_ATTEMPTS_ENV); validateInputParam(containerIdStr, - ApplicationConstants.AM_CONTAINER_ID_ENV); - validateInputParam(nodeHostString, ApplicationConstants.NM_HOST_ENV); - validateInputParam(nodePortString, ApplicationConstants.NM_PORT_ENV); + Environment.CONTAINER_ID.name()); + validateInputParam(nodeHostString, Environment.NM_HOST.name()); + validateInputParam(nodePortString, Environment.NM_PORT.name()); validateInputParam(nodeHttpPortString, ApplicationConstants.NM_HTTP_PORT_ENV); validateInputParam(appSubmitTimeStr, diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/ApplicationConstants.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/ApplicationConstants.java index 02b15c4..99b9b5f 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/ApplicationConstants.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/ApplicationConstants.java @@ -36,26 +36,8 @@ // TODO: They say tokens via env isn't good. public static final String APPLICATION_CLIENT_SECRET_ENV_NAME = "AppClientSecretEnv"; - - /** - * The environment variable for CONTAINER_ID. Set in AppMaster environment - * only - */ - public static final String AM_CONTAINER_ID_ENV = "AM_CONTAINER_ID"; /** - * The environment variable for the NM_HOST. Set in the AppMaster environment - * only - */ - public static final String NM_HOST_ENV = "NM_HOST"; - - /** - * The environment variable for the NM_PORT. Set in the AppMaster environment - * only - */ - public static final String NM_PORT_ENV = "NM_PORT"; - - /** * The environment variable for the NM_HTTP_PORT. Set in the AppMaster environment * only */ @@ -177,7 +159,25 @@ /** * $HADOOP_YARN_HOME */ - HADOOP_YARN_HOME("HADOOP_YARN_HOME"); + HADOOP_YARN_HOME("HADOOP_YARN_HOME"), + + /** + * $CONTAINER_ID + * Final, non-modifiable. + */ + CONTAINER_ID("CONTAINER_ID"), + + /** + * $NM_HOST + * Final, non-modifiable. + */ + NM_HOST("NM_HOST"), + + /** + * $NM_PORT + * Final, non-modifiable. + */ + NM_PORT("NM_PORT"); private final String variable; private Environment(String variable) { diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-distributedshell/src/main/java/org/apache/hadoop/yarn/applications/distributedshell/ApplicationMaster.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-distributedshell/src/main/java/org/apache/hadoop/yarn/applications/distributedshell/ApplicationMaster.java index 965a8aa..e303334 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-distributedshell/src/main/java/org/apache/hadoop/yarn/applications/distributedshell/ApplicationMaster.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-distributedshell/src/main/java/org/apache/hadoop/yarn/applications/distributedshell/ApplicationMaster.java @@ -45,6 +45,7 @@ import org.apache.hadoop.net.NetUtils; import org.apache.hadoop.yarn.api.AMRMProtocol; import org.apache.hadoop.yarn.api.ApplicationConstants; +import org.apache.hadoop.yarn.api.ApplicationConstants.Environment; import org.apache.hadoop.yarn.api.ContainerExitStatus; import org.apache.hadoop.yarn.api.ContainerManager; @@ -320,7 +321,7 @@ public boolean init(String[] args) throws ParseException, IOException { Map envs = System.getenv(); - if (!envs.containsKey(ApplicationConstants.AM_CONTAINER_ID_ENV)) { + if (!envs.containsKey(Environment.CONTAINER_ID.name())) { if (cliParser.hasOption("app_attempt_id")) { String appIdStr = cliParser.getOptionValue("app_attempt_id", ""); appAttemptID = ConverterUtils.toApplicationAttemptId(appIdStr); @@ -330,7 +331,7 @@ public boolean init(String[] args) throws ParseException, IOException { } } else { ContainerId containerId = ConverterUtils.toContainerId(envs - .get(ApplicationConstants.AM_CONTAINER_ID_ENV)); + .get(Environment.CONTAINER_ID.name())); appAttemptID = containerId.getApplicationAttemptId(); } @@ -338,16 +339,16 @@ public boolean init(String[] args) throws ParseException, IOException { throw new RuntimeException(ApplicationConstants.APP_SUBMIT_TIME_ENV + " not set in the environment"); } - if (!envs.containsKey(ApplicationConstants.NM_HOST_ENV)) { - throw new RuntimeException(ApplicationConstants.NM_HOST_ENV + if (!envs.containsKey(Environment.NM_HOST.name())) { + throw new RuntimeException(Environment.NM_HOST.name() + " not set in the environment"); } if (!envs.containsKey(ApplicationConstants.NM_HTTP_PORT_ENV)) { throw new RuntimeException(ApplicationConstants.NM_HTTP_PORT_ENV + " not set in the environment"); } - if (!envs.containsKey(ApplicationConstants.NM_PORT_ENV)) { - throw new RuntimeException(ApplicationConstants.NM_PORT_ENV + if (!envs.containsKey(Environment.NM_PORT.name())) { + throw new RuntimeException(Environment.NM_PORT.name() + " not set in the environment"); } diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-unmanaged-am-launcher/src/main/java/org/apache/hadoop/yarn/applications/unmanagedamlauncher/UnmanagedAMLauncher.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-unmanaged-am-launcher/src/main/java/org/apache/hadoop/yarn/applications/unmanagedamlauncher/UnmanagedAMLauncher.java index 605dc3b..c64e471 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-unmanaged-am-launcher/src/main/java/org/apache/hadoop/yarn/applications/unmanagedamlauncher/UnmanagedAMLauncher.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-unmanaged-am-launcher/src/main/java/org/apache/hadoop/yarn/applications/unmanagedamlauncher/UnmanagedAMLauncher.java @@ -37,6 +37,7 @@ import org.apache.commons.logging.LogFactory; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.yarn.api.ApplicationConstants; +import org.apache.hadoop.yarn.api.ApplicationConstants.Environment; import org.apache.hadoop.yarn.api.protocolrecords.GetNewApplicationResponse; import org.apache.hadoop.yarn.api.records.ApplicationAttemptId; import org.apache.hadoop.yarn.api.records.ApplicationId; @@ -190,10 +191,10 @@ public void launchAM(ApplicationAttemptId attemptId) throws IOException { containerId.setId(0); String hostname = InetAddress.getLocalHost().getHostName(); - envAMList.add(ApplicationConstants.AM_CONTAINER_ID_ENV + "=" + containerId); - envAMList.add(ApplicationConstants.NM_HOST_ENV + "=" + hostname); + envAMList.add(Environment.CONTAINER_ID.name() + "=" + containerId); + envAMList.add(Environment.NM_HOST.name() + "=" + hostname); envAMList.add(ApplicationConstants.NM_HTTP_PORT_ENV + "=0"); - envAMList.add(ApplicationConstants.NM_PORT_ENV + "=0"); + envAMList.add(Environment.NM_PORT.name() + "=0"); envAMList.add(ApplicationConstants.APP_SUBMIT_TIME_ENV + "=" + System.currentTimeMillis()); diff --git 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 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 876a57f..b958179 100644 --- 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 +++ 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 @@ -50,6 +50,7 @@ import org.apache.hadoop.yarn.api.ContainerExitStatus; import org.apache.hadoop.yarn.api.records.ContainerId; import org.apache.hadoop.yarn.api.records.ContainerLaunchContext; +import org.apache.hadoop.yarn.api.records.NodeId; import org.apache.hadoop.yarn.conf.YarnConfiguration; import org.apache.hadoop.yarn.event.Dispatcher; import org.apache.hadoop.yarn.server.nodemanager.ContainerExecutor; @@ -83,6 +84,7 @@ private final Application app; private final Container container; private final Configuration conf; + private final NodeId nodeId; private volatile AtomicBoolean shouldLaunchContainer = new AtomicBoolean(false); private volatile AtomicBoolean completed = new AtomicBoolean(false); @@ -96,13 +98,14 @@ public ContainerLaunch(Configuration configuration, Dispatcher dispatcher, ContainerExecutor exec, Application app, Container container, - LocalDirsHandlerService dirsHandler) { + LocalDirsHandlerService dirsHandler, NodeId nodeId) { this.conf = configuration; this.app = app; this.exec = exec; this.container = container; this.dispatcher = dispatcher; this.dirsHandler = dirsHandler; + this.nodeId = nodeId; this.sleepDelayBeforeSigKill = conf.getLong(YarnConfiguration.NM_SLEEP_DELAY_BEFORE_SIGKILL_MS, YarnConfiguration.DEFAULT_NM_SLEEP_DELAY_BEFORE_SIGKILL_MS); @@ -537,11 +540,19 @@ public void sanitizeEnv(Map environment, * Non-modifiable environment variables */ + environment.put(Environment.CONTAINER_ID.name(), container + .getContainerID().toString()); + + environment.put(Environment.NM_PORT.name(), + String.valueOf(nodeId.getPort())); + + environment.put(Environment.NM_HOST.name(), nodeId.getHost()); + putEnvIfNotNull(environment, Environment.USER.name(), container.getUser()); putEnvIfNotNull(environment, Environment.LOGNAME.name(),container.getUser()); - + putEnvIfNotNull(environment, Environment.HOME.name(), conf.get( diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/launcher/ContainersLauncher.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/launcher/ContainersLauncher.java index 1e3c18b..756042b 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/launcher/ContainersLauncher.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/launcher/ContainersLauncher.java @@ -119,7 +119,7 @@ public void handle(ContainersLauncherEvent event) { containerId.getApplicationAttemptId().getApplicationId()); ContainerLaunch launch = new ContainerLaunch(getConfig(), dispatcher, - exec, app, event.getContainer(), dirsHandler); + exec, app, event.getContainer(), dirsHandler, context.getNodeId()); running.put(containerId, new RunningContainer(containerLauncher.submit(launch), launch)); diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/launcher/TestContainerLaunch.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/launcher/TestContainerLaunch.java index 7027072..00e57b0 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/launcher/TestContainerLaunch.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/launcher/TestContainerLaunch.java @@ -51,7 +51,6 @@ import org.apache.hadoop.yarn.api.records.LocalResource; import org.apache.hadoop.yarn.api.records.LocalResourceType; import org.apache.hadoop.yarn.api.records.LocalResourceVisibility; -import org.apache.hadoop.yarn.api.records.Resource; import org.apache.hadoop.yarn.api.records.URL; import org.apache.hadoop.yarn.conf.YarnConfiguration; import org.apache.hadoop.yarn.server.nodemanager.ContainerExecutor.ExitCode; @@ -163,28 +162,10 @@ public static void setNewEnvironmentHack(Map newenv) throws Exce * See if environment variable is forwarded using sanitizeEnv. * @throws Exception */ - @Test + @Test (timeout = 5000) public void testContainerEnvVariables() throws Exception { containerManager.start(); - Map envWithDummy = new HashMap(); - envWithDummy.putAll(System.getenv()); - envWithDummy.put(Environment.MALLOC_ARENA_MAX.name(), "99"); - setNewEnvironmentHack(envWithDummy); - - String malloc = System.getenv(Environment.MALLOC_ARENA_MAX.name()); - File scriptFile = new File(tmpDir, "scriptFile.sh"); - PrintWriter fileWriter = new PrintWriter(scriptFile); - File processStartFile = - new File(tmpDir, "env_vars.txt").getAbsoluteFile(); - fileWriter.write("\numask 0"); // So that start file is readable by the test - fileWriter.write("\necho $" + Environment.MALLOC_ARENA_MAX.name() + " > " + processStartFile); - fileWriter.write("\necho $$ >> " + processStartFile); - fileWriter.write("\nexec sleep 100"); - fileWriter.close(); - - assert(malloc != null && !"".equals(malloc)); - ContainerLaunchContext containerLaunchContext = recordFactory.newRecordInstance(ContainerLaunchContext.class); @@ -202,7 +183,42 @@ public void testContainerEnvVariables() throws Exception { cId.setApplicationAttemptId(appAttemptId); when(mockContainer.getId()).thenReturn(cId); + Map userSetEnv = new HashMap(); + userSetEnv.put(Environment.CONTAINER_ID.name(), "user_set_container_id"); + userSetEnv.put(Environment.NM_HOST.name(), "user_set_NM_HOST"); + userSetEnv.put(Environment.NM_PORT.name(), "user_set_NM_PORT"); containerLaunchContext.setUser(user); + containerLaunchContext.setEnvironment(userSetEnv); + + Map envWithDummy = new HashMap(); + envWithDummy.putAll(System.getenv()); + envWithDummy.put(Environment.MALLOC_ARENA_MAX.name(), "99"); + envWithDummy.put(Environment.CONTAINER_ID.name(), cId.toString()); + envWithDummy.put(Environment.NM_HOST.name(), + context.getNodeId().getHost()); + envWithDummy.put(Environment.NM_PORT.name(), + String.valueOf(context.getNodeId().getPort())); + setNewEnvironmentHack(envWithDummy); + + String malloc = System.getenv(Environment.MALLOC_ARENA_MAX.name()); + File scriptFile = new File(tmpDir, "scriptFile.sh"); + PrintWriter fileWriter = new PrintWriter(scriptFile); + File processStartFile = + new File(tmpDir, "env_vars.txt").getAbsoluteFile(); + fileWriter.write("\numask 0"); // So that start file is readable by the test + fileWriter.write("\necho $" + Environment.MALLOC_ARENA_MAX.name() + " >> " + + processStartFile); + fileWriter.write("\necho $" + Environment.CONTAINER_ID.name() + " >> " + + processStartFile); + fileWriter.write("\necho $" + Environment.NM_HOST.name() + " >> " + + processStartFile); + fileWriter.write("\necho $" + Environment.NM_PORT.name() + " >> " + + processStartFile); + fileWriter.write("\necho $$ >> " + processStartFile); + fileWriter.write("\nexec sleep 100"); + fileWriter.close(); + + assert(malloc != null && !"".equals(malloc)); // upload the script file so that the container can run it URL resource_alpha = @@ -246,6 +262,18 @@ public void testContainerEnvVariables() throws Exception { BufferedReader reader = new BufferedReader(new FileReader(processStartFile)); Assert.assertEquals(malloc, reader.readLine()); + Assert.assertEquals(cId.toString(), reader.readLine()); + Assert.assertEquals(context.getNodeId().getHost(), reader.readLine()); + Assert.assertEquals(String.valueOf(context.getNodeId().getPort()), + reader.readLine()); + + Assert.assertEquals(cId.toString(), containerLaunchContext.getEnvironment() + .get(Environment.CONTAINER_ID.name())); + Assert.assertEquals(context.getNodeId().getHost(), containerLaunchContext + .getEnvironment().get(Environment.NM_HOST.name())); + Assert.assertEquals(String.valueOf(context.getNodeId().getPort()), + containerLaunchContext.getEnvironment().get( + Environment.NM_PORT.name())); // Get the pid of the process String pid = reader.readLine().trim(); // No more lines diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/amlauncher/AMLauncher.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/amlauncher/AMLauncher.java index 517d7fb..c141fe6 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/amlauncher/AMLauncher.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/amlauncher/AMLauncher.java @@ -40,6 +40,7 @@ import org.apache.hadoop.util.StringUtils; import org.apache.hadoop.yarn.api.ApplicationConstants; import org.apache.hadoop.yarn.api.ContainerManager; +import org.apache.hadoop.yarn.api.ApplicationConstants.Environment; import org.apache.hadoop.yarn.api.protocolrecords.StartContainerRequest; import org.apache.hadoop.yarn.api.protocolrecords.StopContainerRequest; import org.apache.hadoop.yarn.api.records.ApplicationId; @@ -180,11 +181,11 @@ private void setupTokensAndEnv( application.getWebProxyBase()); // Set the AppAttemptId, containerId, NMHTTPAdress, AppSubmitTime to be // consumable by the AM. - environment.put(ApplicationConstants.AM_CONTAINER_ID_ENV, + environment.put(Environment.CONTAINER_ID.name(), containerID.toString()); - environment.put(ApplicationConstants.NM_HOST_ENV, masterContainer + environment.put(Environment.NM_HOST.name(), masterContainer .getNodeId().getHost()); - environment.put(ApplicationConstants.NM_PORT_ENV, + environment.put(Environment.NM_PORT.name(), String.valueOf(masterContainer.getNodeId().getPort())); String parts[] = masterContainer.getNodeHttpAddress().split(":"); diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestApplicationMasterLauncher.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestApplicationMasterLauncher.java index 5c6247b..b41b516 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestApplicationMasterLauncher.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestApplicationMasterLauncher.java @@ -23,6 +23,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.yarn.api.ApplicationConstants; +import org.apache.hadoop.yarn.api.ApplicationConstants.Environment; import org.apache.hadoop.yarn.api.ContainerManager; import org.apache.hadoop.yarn.api.protocolrecords.GetContainerStatusRequest; import org.apache.hadoop.yarn.api.protocolrecords.GetContainerStatusResponse; @@ -72,14 +73,14 @@ Map env = request.getContainerLaunchContext().getEnvironment(); containerIdAtContainerManager = - env.get(ApplicationConstants.AM_CONTAINER_ID_ENV); + env.get(Environment.CONTAINER_ID.name()); ContainerId containerId = ConverterUtils.toContainerId(containerIdAtContainerManager); attemptIdAtContainerManager = containerId.getApplicationAttemptId().toString(); - nmHostAtContainerManager = env.get(ApplicationConstants.NM_HOST_ENV); + nmHostAtContainerManager = env.get(Environment.NM_HOST.name()); nmPortAtContainerManager = - Integer.parseInt(env.get(ApplicationConstants.NM_PORT_ENV)); + Integer.parseInt(env.get(Environment.NM_PORT.name())); nmHttpPortAtContainerManager = Integer.parseInt(env.get(ApplicationConstants.NM_HTTP_PORT_ENV)); submitTimeAtContainerManager =