|
@@ -54,6 +54,8 @@ import org.apache.hadoop.yarn.server.resourcemanager.scheduler.event.SchedulerEv
|
|
|
import org.apache.hadoop.yarn.sls.SLSRunner;
|
|
|
import org.apache.hadoop.yarn.sls.conf.SLSConfiguration;
|
|
|
import org.apache.hadoop.yarn.util.resource.Resources;
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
|
|
|
import com.codahale.metrics.Timer;
|
|
|
|
|
@@ -75,6 +77,9 @@ public class SLSCapacityScheduler extends CapacityScheduler implements
|
|
|
private boolean metricsON;
|
|
|
private Tracker tracker;
|
|
|
|
|
|
+ // logger
|
|
|
+ private static final Logger LOG = LoggerFactory.getLogger(SLSCapacityScheduler.class);
|
|
|
+
|
|
|
public Tracker getTracker() {
|
|
|
return tracker;
|
|
|
}
|
|
@@ -218,6 +223,14 @@ public class SLSCapacityScheduler extends CapacityScheduler implements
|
|
|
AppAttemptRemovedSchedulerEvent appRemoveEvent =
|
|
|
(AppAttemptRemovedSchedulerEvent) schedulerEvent;
|
|
|
appQueueMap.remove(appRemoveEvent.getApplicationAttemptID());
|
|
|
+ if (SLSRunner.getRemainingApps() == 0) {
|
|
|
+ try {
|
|
|
+ getSchedulerMetrics().tearDown();
|
|
|
+ SLSRunner.exitSLSRunner();
|
|
|
+ } catch (Exception e) {
|
|
|
+ LOG.error("Scheduler Metrics failed to tear down.", e);
|
|
|
+ }
|
|
|
+ }
|
|
|
} else if (schedulerEvent.getType() ==
|
|
|
SchedulerEventType.APP_ATTEMPT_ADDED
|
|
|
&& schedulerEvent instanceof AppAttemptAddedSchedulerEvent) {
|