|
@@ -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();
|
|
|
}
|
|
|
|