[ https://issues.apache.org/jira/browse/MAPREDUCE-6704?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Bibin A Chundatt updated MAPREDUCE-6704: ---------------------------------------- Attachment: temp.patch [~tangzhankun] Thank you for attaching logs. Had quick look are the launch_container.sh {{HADOOP_MAPRED_HOME}} patch is set based nodemanager which should have worked in all cases.As per my understanding could fail only when the {{HADOOP_MAPRED_HOME}} where the container do launch is different. Could you try based on {{temp.patch}} .Currently i don't have docker setup to test my analysis. {code} +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/ContainerExecutor.java @@ -320,11 +320,11 @@ public void writeLaunchEnv(OutputStream out, Map<String, String> environment, ContainerLaunch.ShellScriptBuilder.create(); Set<String> whitelist = new HashSet<>(); - whitelist.add(ApplicationConstants.Environment.HADOOP_YARN_HOME.name()); - whitelist.add(ApplicationConstants.Environment.HADOOP_COMMON_HOME.name()); - whitelist.add(ApplicationConstants.Environment.HADOOP_HDFS_HOME.name()); - whitelist.add(ApplicationConstants.Environment.HADOOP_CONF_DIR.name()); - whitelist.add(ApplicationConstants.Environment.JAVA_HOME.name()); + String[] nmWhiteList = conf.get(YarnConfiguration.NM_ENV_WHITELIST, + YarnConfiguration.DEFAULT_NM_ENV_WHITELIST).split(","); + for (String param : nmWhiteList) { + whitelist.add(param); + } {code} [~templedf] {{ContainerExecutor#writeLaunchEnv}} is handling only the default whitelist params as per current code.Looks like bug in yarn. The above change should allow taking the {{HADOOP_MAPRED_HOME}} from docker env during container launch. {{launcher_container.sh}} mapred_home_patch will get exported as following. {noformat} export HADOOP_MAPRED_HOME=${HADOOP_MAPRED_HOME:-"/home/hadoopbuild"} {noformat} instead of {noformat} export HADOOP_MAPRED_HOME="/home/hadoopbuild" {noformat} > Container fail to launch for mapred application > ----------------------------------------------- > > Key: MAPREDUCE-6704 > URL: https://issues.apache.org/jira/browse/MAPREDUCE-6704 > Project: Hadoop Map/Reduce > Issue Type: Bug > Reporter: Bibin A Chundatt > Assignee: Bibin A Chundatt > Priority: Blocker > Attachments: 0001-MAPREDUCE-6704.patch, 0001-YARN-5026.patch, > ClusterSetup.html, MAPREDUCE-6704.0002.patch, MR-6704-branch2.8.tar.gz, > MR-6704-trunk.tar.gz, SingleCluster.html, container-whitelist-env-wip.patch, > temp.patch > > > Container fail to launch for mapred application. > As part for launch script {{HADOOP_MAPRED_HOME}} default value is not set > .After > https://github.com/apache/hadoop/commit/9d4d30243b0fc9630da51a2c17b543ef671d035c > {{HADOOP_MAPRED_HOME}} is not able to get from {{builder.environment()}} > since {{DefaultContainerExecutor#buildCommandExecutor}} sets inherit to false. > {noformat} > 16/05/02 09:16:05 INFO mapreduce.Job: Job job_1462155939310_0004 failed with > state FAILED due to: Application application_1462155939310_0004 failed 2 > times due to AM Container for appattempt_1462155939310_0004_000002 exited > with exitCode: 1 > Failing this attempt.Diagnostics: Exception from container-launch. > Container id: container_1462155939310_0004_02_000001 > Exit code: 1 > Stack trace: ExitCodeException exitCode=1: > at org.apache.hadoop.util.Shell.runCommand(Shell.java:946) > at org.apache.hadoop.util.Shell.run(Shell.java:850) > at > org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:1144) > at > org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:227) > at > org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.launchContainer(ContainerLaunch.java:385) > at > org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:281) > at > org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:89) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at java.lang.Thread.run(Thread.java:745) > Container exited with a non-zero exit code 1. Last 4096 bytes of stderr : > Java HotSpot(TM) 64-Bit Server VM warning: ignoring option UseSplitVerifier; > support was removed in 8.0 > Error: Could not find or load main class > org.apache.hadoop.mapreduce.v2.app.MRAppMaster > Container exited with a non-zero exit code 1. Last 4096 bytes of stderr : > Java HotSpot(TM) 64-Bit Server VM warning: ignoring option UseSplitVerifier; > support was removed in 8.0 > {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: mapreduce-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: mapreduce-issues-h...@hadoop.apache.org