diff --git a/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/SLSRunner.java b/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/SLSRunner.java index b4d4a809bb6..7d5cca62f93 100644 --- a/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/SLSRunner.java +++ b/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/SLSRunner.java @@ -937,6 +937,11 @@ public static void decreaseRemainingApps() { if (remainingApps == 0) { LOG.info("SLSRunner tears down."); if (exitAtTheFinish) { + try { + SchedulerMetrics.closeMetricsWriter(); + } catch (IOException e) { + LOG.info(e.getMessage()); + } System.exit(0); } } diff --git a/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/scheduler/SchedulerMetrics.java b/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/scheduler/SchedulerMetrics.java index 2957d239f13..8c444d59f53 100644 --- a/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/scheduler/SchedulerMetrics.java +++ b/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/scheduler/SchedulerMetrics.java @@ -83,7 +83,7 @@ // metrics private String metricsOutputDir; - private BufferedWriter metricsLogBW; + private static BufferedWriter metricsLogBW; private BufferedWriter jobRuntimeLogBW; private boolean running = false; @@ -538,6 +538,11 @@ public void run() { } } + public static void closeMetricsWriter() throws IOException{ + metricsLogBW.write("]"); + metricsLogBW.flush(); + metricsLogBW.close(); + } void tearDown() throws Exception { if (metricsLogBW != null) { metricsLogBW.write("]");