Просмотр исходного кода

MAPREDUCE-6443. Add JvmPauseMonitor to JobHistoryServer. Contributed by Robert Kanter.

Junping Du 9 лет назад
Родитель
Сommit
c8469357ba

+ 3 - 0
hadoop-mapreduce-project/CHANGES.txt

@@ -103,6 +103,9 @@ Release 2.8.0 - UNRELEASED
     MAPREDUCE-5762. Port MAPREDUCE-3223 and MAPREDUCE-4695 (Remove MRv1 config
     from mapred-default.xml) to branch-2. (aajisaka)
 
+    MAPREDUCE-6443. Add JvmPauseMonitor to JobHistoryServer. (Robert Kanter
+    via junping_du)
+
   OPTIMIZATIONS
 
     MAPREDUCE-6376. Add avro binary support for jhist files (Ray Chiang via

+ 12 - 2
hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/JobHistoryServer.java

@@ -38,6 +38,7 @@ import org.apache.hadoop.service.AbstractService;
 import org.apache.hadoop.service.CompositeService;
 import org.apache.hadoop.util.ExitUtil;
 import org.apache.hadoop.util.GenericOptionsParser;
+import org.apache.hadoop.util.JvmPauseMonitor;
 import org.apache.hadoop.util.ShutdownHookManager;
 import org.apache.hadoop.util.StringUtils;
 import org.apache.hadoop.yarn.YarnUncaughtExceptionHandler;
@@ -70,6 +71,7 @@ public class JobHistoryServer extends CompositeService {
   private AggregatedLogDeletionService aggLogDelService;
   private HSAdminServer hsAdminServer;
   private HistoryServerStateStoreService stateStore;
+  private JvmPauseMonitor pauseMonitor;
 
   // utility class to start and stop secret manager as part of service
   // framework and implement state recovery for secret manager on startup
@@ -140,6 +142,12 @@ public class JobHistoryServer extends CompositeService {
     addService(clientService);
     addService(aggLogDelService);
     addService(hsAdminServer);
+
+    DefaultMetricsSystem.initialize("JobHistoryServer");
+    JvmMetrics jm = JvmMetrics.initSingleton("JobHistoryServer", null);
+    pauseMonitor = new JvmPauseMonitor(getConfig());
+    jm.setPauseMonitor(pauseMonitor);
+
     super.serviceInit(config);
   }
 
@@ -190,14 +198,16 @@ public class JobHistoryServer extends CompositeService {
 
   @Override
   protected void serviceStart() throws Exception {
-    DefaultMetricsSystem.initialize("JobHistoryServer");
-    JvmMetrics.initSingleton("JobHistoryServer", null);
+    pauseMonitor.start();
     super.serviceStart();
   }
   
   @Override
   protected void serviceStop() throws Exception {
     DefaultMetricsSystem.shutdown();
+    if (pauseMonitor != null) {
+      pauseMonitor.stop();
+    }
     super.serviceStop();
   }