diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/amlauncher/AMLauncher.java b/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 7051f8c..393ab00 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/amlauncher/AMLauncher.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/amlauncher/AMLauncher.java @@ -105,12 +105,17 @@ private void launch() throws IOException, YarnException { connect(); ContainerId masterContainerID = masterContainer.getId(); ApplicationSubmissionContext applicationContext = - application.getSubmissionContext(); + application.getSubmissionContext(); LOG.info("Setting up container " + masterContainer + " for AM " + application.getAppAttemptId()); ContainerLaunchContext launchContext = createAMContainerLaunchContext(applicationContext, masterContainerID); + if (launchContext == null) { + throw new YarnException(application.getAppAttemptId()+ + " hbas beed killed before launched"); + } + StartContainerRequest scRequest = StartContainerRequest.newInstance(launchContext, masterContainer.getContainerToken()); @@ -189,10 +194,12 @@ private ContainerLaunchContext createAMContainerLaunchContext( ContainerLaunchContext container = applicationMasterContext.getAMContainerSpec(); - // Finalize the container - setupTokens(container, containerID); - // set the flow context optionally for timeline service v.2 - setFlowContext(container); + if (container != null) { + // Finalize the container + setupTokens(container, containerID); + // set the flow context optionally for timeline service v.2 + setFlowContext(container); + } return container; }