YARN-4031. Add JvmPauseMonitor to ApplicationHistoryServer and WebAppProxyServer (djp via rkanter)
This commit is contained in:
parent
820f864a26
commit
dc2340c60e
|
@ -396,6 +396,9 @@ Release 2.8.0 - UNRELEASED
|
|||
YARN-4026. Refactored ContainerAllocator to accept a list of priorites
|
||||
rather than a single priority. (Wangda Tan via jianhe)
|
||||
|
||||
YARN-4031. Add JvmPauseMonitor to ApplicationHistoryServer and
|
||||
WebAppProxyServer (djp via rkanter)
|
||||
|
||||
OPTIMIZATIONS
|
||||
|
||||
YARN-3339. TestDockerContainerExecutor should pull a single image and not
|
||||
|
|
|
@ -34,6 +34,7 @@ import org.apache.hadoop.service.CompositeService;
|
|||
import org.apache.hadoop.service.Service;
|
||||
import org.apache.hadoop.util.ExitUtil;
|
||||
import org.apache.hadoop.util.GenericOptionsParser;
|
||||
import org.apache.hadoop.util.JvmPauseMonitor;
|
||||
import org.apache.hadoop.util.ReflectionUtils;
|
||||
import org.apache.hadoop.util.ShutdownHookManager;
|
||||
import org.apache.hadoop.util.StringUtils;
|
||||
|
@ -73,6 +74,7 @@ public class ApplicationHistoryServer extends CompositeService {
|
|||
private TimelineDelegationTokenSecretManagerService secretManagerService;
|
||||
private TimelineDataManager timelineDataManager;
|
||||
private WebApp webApp;
|
||||
private JvmPauseMonitor pauseMonitor;
|
||||
|
||||
public ApplicationHistoryServer() {
|
||||
super(ApplicationHistoryServer.class.getName());
|
||||
|
@ -96,7 +98,9 @@ public class ApplicationHistoryServer extends CompositeService {
|
|||
addService((Service) historyManager);
|
||||
|
||||
DefaultMetricsSystem.initialize("ApplicationHistoryServer");
|
||||
JvmMetrics.initSingleton("ApplicationHistoryServer", null);
|
||||
JvmMetrics jm = JvmMetrics.initSingleton("ApplicationHistoryServer", null);
|
||||
pauseMonitor = new JvmPauseMonitor(conf);
|
||||
jm.setPauseMonitor(pauseMonitor);
|
||||
super.serviceInit(conf);
|
||||
}
|
||||
|
||||
|
@ -107,6 +111,10 @@ public class ApplicationHistoryServer extends CompositeService {
|
|||
} catch(IOException ie) {
|
||||
throw new YarnRuntimeException("Failed to login", ie);
|
||||
}
|
||||
|
||||
if (pauseMonitor != null) {
|
||||
pauseMonitor.start();
|
||||
}
|
||||
super.serviceStart();
|
||||
startWebApp();
|
||||
}
|
||||
|
@ -116,7 +124,9 @@ public class ApplicationHistoryServer extends CompositeService {
|
|||
if (webApp != null) {
|
||||
webApp.stop();
|
||||
}
|
||||
|
||||
if (pauseMonitor != null) {
|
||||
pauseMonitor.stop();
|
||||
}
|
||||
DefaultMetricsSystem.shutdown();
|
||||
super.serviceStop();
|
||||
}
|
||||
|
|
|
@ -22,10 +22,13 @@ import java.io.IOException;
|
|||
import java.net.InetSocketAddress;
|
||||
|
||||
import org.apache.hadoop.conf.Configuration;
|
||||
import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem;
|
||||
import org.apache.hadoop.metrics2.source.JvmMetrics;
|
||||
import org.apache.hadoop.security.SecurityUtil;
|
||||
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;
|
||||
|
@ -48,7 +51,9 @@ public class WebAppProxyServer extends CompositeService {
|
|||
WebAppProxyServer.class);
|
||||
|
||||
private WebAppProxy proxy = null;
|
||||
|
||||
|
||||
private JvmPauseMonitor pauseMonitor;
|
||||
|
||||
public WebAppProxyServer() {
|
||||
super(WebAppProxyServer.class.getName());
|
||||
}
|
||||
|
@ -56,12 +61,35 @@ public class WebAppProxyServer extends CompositeService {
|
|||
@Override
|
||||
protected void serviceInit(Configuration conf) throws Exception {
|
||||
Configuration config = new YarnConfiguration(conf);
|
||||
doSecureLogin(conf);
|
||||
doSecureLogin(conf);
|
||||
proxy = new WebAppProxy();
|
||||
addService(proxy);
|
||||
|
||||
DefaultMetricsSystem.initialize("WebAppProxyServer");
|
||||
JvmMetrics jm = JvmMetrics.initSingleton("WebAppProxyServer", null);
|
||||
pauseMonitor = new JvmPauseMonitor(conf);
|
||||
jm.setPauseMonitor(pauseMonitor);
|
||||
|
||||
super.serviceInit(config);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void serviceStart() throws Exception {
|
||||
if (pauseMonitor != null) {
|
||||
pauseMonitor.start();
|
||||
}
|
||||
super.serviceStart();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void serviceStop() throws Exception {
|
||||
super.serviceStop();
|
||||
DefaultMetricsSystem.shutdown();
|
||||
if (pauseMonitor != null) {
|
||||
pauseMonitor.stop();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Log in as the Kerberose principal designated for the proxy
|
||||
* @param conf the configuration holding this information in it.
|
||||
|
|
Loading…
Reference in New Issue