From 31009034bd16085b4634bfd861d32cdb9abab92a Mon Sep 17 00:00:00 2001 From: Billie Rinaldi Date: Wed, 28 Feb 2018 11:57:24 -0800 Subject: [PATCH] YARN-7954. Set component status to STOPPED when YARN service is stopped. Contributed by Gour Saha --- .../org/apache/hadoop/yarn/service/ServiceScheduler.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/ServiceScheduler.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/ServiceScheduler.java index dfe9808a022..9bf567a7940 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/ServiceScheduler.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/ServiceScheduler.java @@ -96,6 +96,7 @@ import static org.apache.hadoop.fs.FileSystem.FS_DEFAULT_NAME_KEY; import static org.apache.hadoop.registry.client.api.RegistryConstants.*; +import static org.apache.hadoop.yarn.api.records.ContainerExitStatus.KILLED_AFTER_APP_COMPLETION; import static org.apache.hadoop.yarn.service.api.ServiceApiConstants.*; import static org.apache.hadoop.yarn.service.component.ComponentEventType.*; @@ -253,6 +254,13 @@ public void serviceInit(Configuration conf) throws Exception { public void serviceStop() throws Exception { LOG.info("Stopping service scheduler"); + // Mark component-instances/containers as STOPPED + if (YarnConfiguration.timelineServiceV2Enabled(getConfig())) { + for (ContainerId containerId : getLiveInstances().keySet()) { + serviceTimelinePublisher.componentInstanceFinished(containerId, + KILLED_AFTER_APP_COMPLETION, diagnostics.toString()); + } + } if (executorService != null) { executorService.shutdownNow(); }