|
@@ -102,7 +102,6 @@ public class AdminService extends CompositeService implements
|
|
|
|
|
|
private static final Log LOG = LogFactory.getLog(AdminService.class);
|
|
private static final Log LOG = LogFactory.getLog(AdminService.class);
|
|
|
|
|
|
- private final RMContext rmContext;
|
|
|
|
private final ResourceManager rm;
|
|
private final ResourceManager rm;
|
|
private String rmId;
|
|
private String rmId;
|
|
|
|
|
|
@@ -123,16 +122,16 @@ public class AdminService extends CompositeService implements
|
|
@VisibleForTesting
|
|
@VisibleForTesting
|
|
boolean isCentralizedNodeLabelConfiguration = true;
|
|
boolean isCentralizedNodeLabelConfiguration = true;
|
|
|
|
|
|
- public AdminService(ResourceManager rm, RMContext rmContext) {
|
|
|
|
|
|
+ public AdminService(ResourceManager rm) {
|
|
super(AdminService.class.getName());
|
|
super(AdminService.class.getName());
|
|
this.rm = rm;
|
|
this.rm = rm;
|
|
- this.rmContext = rmContext;
|
|
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public void serviceInit(Configuration conf) throws Exception {
|
|
public void serviceInit(Configuration conf) throws Exception {
|
|
autoFailoverEnabled =
|
|
autoFailoverEnabled =
|
|
- rmContext.isHAEnabled() && HAUtil.isAutomaticFailoverEnabled(conf);
|
|
|
|
|
|
+ rm.getRMContext().isHAEnabled()
|
|
|
|
+ && HAUtil.isAutomaticFailoverEnabled(conf);
|
|
|
|
|
|
masterServiceBindAddress = conf.getSocketAddr(
|
|
masterServiceBindAddress = conf.getSocketAddr(
|
|
YarnConfiguration.RM_BIND_HOST,
|
|
YarnConfiguration.RM_BIND_HOST,
|
|
@@ -189,7 +188,7 @@ public class AdminService extends CompositeService implements
|
|
RMPolicyProvider.getInstance());
|
|
RMPolicyProvider.getInstance());
|
|
}
|
|
}
|
|
|
|
|
|
- if (rmContext.isHAEnabled()) {
|
|
|
|
|
|
+ if (rm.getRMContext().isHAEnabled()) {
|
|
RPC.setProtocolEngine(conf, HAServiceProtocolPB.class,
|
|
RPC.setProtocolEngine(conf, HAServiceProtocolPB.class,
|
|
ProtobufRpcEngine.class);
|
|
ProtobufRpcEngine.class);
|
|
|
|
|
|
@@ -265,7 +264,7 @@ public class AdminService extends CompositeService implements
|
|
}
|
|
}
|
|
|
|
|
|
private synchronized boolean isRMActive() {
|
|
private synchronized boolean isRMActive() {
|
|
- return HAServiceState.ACTIVE == rmContext.getHAServiceState();
|
|
|
|
|
|
+ return HAServiceState.ACTIVE == rm.getRMContext().getHAServiceState();
|
|
}
|
|
}
|
|
|
|
|
|
private void throwStandbyException() throws StandbyException {
|
|
private void throwStandbyException() throws StandbyException {
|
|
@@ -304,7 +303,7 @@ public class AdminService extends CompositeService implements
|
|
// call all refresh*s for active RM to get the updated configurations.
|
|
// call all refresh*s for active RM to get the updated configurations.
|
|
refreshAll();
|
|
refreshAll();
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
- rmContext
|
|
|
|
|
|
+ rm.getRMContext()
|
|
.getDispatcher()
|
|
.getDispatcher()
|
|
.getEventHandler()
|
|
.getEventHandler()
|
|
.handle(
|
|
.handle(
|
|
@@ -363,7 +362,7 @@ public class AdminService extends CompositeService implements
|
|
@Override
|
|
@Override
|
|
public synchronized HAServiceStatus getServiceStatus() throws IOException {
|
|
public synchronized HAServiceStatus getServiceStatus() throws IOException {
|
|
checkAccess("getServiceState");
|
|
checkAccess("getServiceState");
|
|
- HAServiceState haState = rmContext.getHAServiceState();
|
|
|
|
|
|
+ HAServiceState haState = rm.getRMContext().getHAServiceState();
|
|
HAServiceStatus ret = new HAServiceStatus(haState);
|
|
HAServiceStatus ret = new HAServiceStatus(haState);
|
|
if (isRMActive() || haState == HAServiceProtocol.HAServiceState.STANDBY) {
|
|
if (isRMActive() || haState == HAServiceProtocol.HAServiceState.STANDBY) {
|
|
ret.setReadyToBecomeActive();
|
|
ret.setReadyToBecomeActive();
|
|
@@ -395,11 +394,12 @@ public class AdminService extends CompositeService implements
|
|
}
|
|
}
|
|
|
|
|
|
private void refreshQueues() throws IOException, YarnException {
|
|
private void refreshQueues() throws IOException, YarnException {
|
|
- rmContext.getScheduler().reinitialize(getConfig(), this.rmContext);
|
|
|
|
|
|
+ rm.getRMContext().getScheduler().reinitialize(getConfig(),
|
|
|
|
+ this.rm.getRMContext());
|
|
// refresh the reservation system
|
|
// refresh the reservation system
|
|
- ReservationSystem rSystem = rmContext.getReservationSystem();
|
|
|
|
|
|
+ ReservationSystem rSystem = rm.getRMContext().getReservationSystem();
|
|
if (rSystem != null) {
|
|
if (rSystem != null) {
|
|
- rSystem.reinitialize(getConfig(), rmContext);
|
|
|
|
|
|
+ rSystem.reinitialize(getConfig(), rm.getRMContext());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -418,14 +418,14 @@ public class AdminService extends CompositeService implements
|
|
YarnConfiguration.YARN_SITE_CONFIGURATION_FILE);
|
|
YarnConfiguration.YARN_SITE_CONFIGURATION_FILE);
|
|
switch (request.getDecommissionType()) {
|
|
switch (request.getDecommissionType()) {
|
|
case NORMAL:
|
|
case NORMAL:
|
|
- rmContext.getNodesListManager().refreshNodes(conf);
|
|
|
|
|
|
+ rm.getRMContext().getNodesListManager().refreshNodes(conf);
|
|
break;
|
|
break;
|
|
case GRACEFUL:
|
|
case GRACEFUL:
|
|
- rmContext.getNodesListManager().refreshNodesGracefully(
|
|
|
|
|
|
+ rm.getRMContext().getNodesListManager().refreshNodesGracefully(
|
|
conf, request.getDecommissionTimeout());
|
|
conf, request.getDecommissionTimeout());
|
|
break;
|
|
break;
|
|
case FORCEFUL:
|
|
case FORCEFUL:
|
|
- rmContext.getNodesListManager().refreshNodesForcefully();
|
|
|
|
|
|
+ rm.getRMContext().getNodesListManager().refreshNodesForcefully();
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
RMAuditLogger.logSuccess(user.getShortUserName(), operation,
|
|
RMAuditLogger.logSuccess(user.getShortUserName(), operation,
|
|
@@ -440,7 +440,7 @@ public class AdminService extends CompositeService implements
|
|
Configuration conf =
|
|
Configuration conf =
|
|
getConfiguration(new Configuration(false),
|
|
getConfiguration(new Configuration(false),
|
|
YarnConfiguration.YARN_SITE_CONFIGURATION_FILE);
|
|
YarnConfiguration.YARN_SITE_CONFIGURATION_FILE);
|
|
- rmContext.getNodesListManager().refreshNodes(conf);
|
|
|
|
|
|
+ rm.getRMContext().getNodesListManager().refreshNodes(conf);
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -559,10 +559,11 @@ public class AdminService extends CompositeService implements
|
|
Configuration conf =
|
|
Configuration conf =
|
|
getConfiguration(new Configuration(false),
|
|
getConfiguration(new Configuration(false),
|
|
YarnConfiguration.HADOOP_POLICY_CONFIGURATION_FILE);
|
|
YarnConfiguration.HADOOP_POLICY_CONFIGURATION_FILE);
|
|
- rmContext.getClientRMService().refreshServiceAcls(conf, policyProvider);
|
|
|
|
- rmContext.getApplicationMasterService().refreshServiceAcls(
|
|
|
|
|
|
+ rm.getRMContext().getClientRMService().refreshServiceAcls(conf,
|
|
|
|
+ policyProvider);
|
|
|
|
+ rm.getRMContext().getApplicationMasterService().refreshServiceAcls(
|
|
conf, policyProvider);
|
|
conf, policyProvider);
|
|
- rmContext.getResourceTrackerService().refreshServiceAcls(
|
|
|
|
|
|
+ rm.getRMContext().getResourceTrackerService().refreshServiceAcls(
|
|
conf, policyProvider);
|
|
conf, policyProvider);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -601,7 +602,7 @@ public class AdminService extends CompositeService implements
|
|
// if any invalid nodes, throw exception instead of partially updating
|
|
// if any invalid nodes, throw exception instead of partially updating
|
|
// valid nodes.
|
|
// valid nodes.
|
|
for (NodeId nodeId : nodeIds) {
|
|
for (NodeId nodeId : nodeIds) {
|
|
- RMNode node = this.rmContext.getRMNodes().get(nodeId);
|
|
|
|
|
|
+ RMNode node = this.rm.getRMContext().getRMNodes().get(nodeId);
|
|
if (node == null) {
|
|
if (node == null) {
|
|
LOG.error("Resource update get failed on all nodes due to change "
|
|
LOG.error("Resource update get failed on all nodes due to change "
|
|
+ "resource on an unrecognized node: " + nodeId);
|
|
+ "resource on an unrecognized node: " + nodeId);
|
|
@@ -619,14 +620,14 @@ public class AdminService extends CompositeService implements
|
|
for (Map.Entry<NodeId, ResourceOption> entry : nodeResourceMap.entrySet()) {
|
|
for (Map.Entry<NodeId, ResourceOption> entry : nodeResourceMap.entrySet()) {
|
|
ResourceOption newResourceOption = entry.getValue();
|
|
ResourceOption newResourceOption = entry.getValue();
|
|
NodeId nodeId = entry.getKey();
|
|
NodeId nodeId = entry.getKey();
|
|
- RMNode node = this.rmContext.getRMNodes().get(nodeId);
|
|
|
|
|
|
+ RMNode node = this.rm.getRMContext().getRMNodes().get(nodeId);
|
|
|
|
|
|
if (node == null) {
|
|
if (node == null) {
|
|
LOG.warn("Resource update get failed on an unrecognized node: " + nodeId);
|
|
LOG.warn("Resource update get failed on an unrecognized node: " + nodeId);
|
|
allSuccess = false;
|
|
allSuccess = false;
|
|
} else {
|
|
} else {
|
|
// update resource to RMNode
|
|
// update resource to RMNode
|
|
- this.rmContext.getDispatcher().getEventHandler()
|
|
|
|
|
|
+ this.rm.getRMContext().getDispatcher().getEventHandler()
|
|
.handle(new RMNodeResourceUpdateEvent(nodeId, newResourceOption));
|
|
.handle(new RMNodeResourceUpdateEvent(nodeId, newResourceOption));
|
|
LOG.info("Update resource on node(" + node.getNodeID()
|
|
LOG.info("Update resource on node(" + node.getNodeID()
|
|
+ ") with resource(" + newResourceOption.toString() + ")");
|
|
+ ") with resource(" + newResourceOption.toString() + ")");
|
|
@@ -661,7 +662,8 @@ public class AdminService extends CompositeService implements
|
|
DynamicResourceConfiguration newConf;
|
|
DynamicResourceConfiguration newConf;
|
|
|
|
|
|
InputStream drInputStream =
|
|
InputStream drInputStream =
|
|
- this.rmContext.getConfigurationProvider().getConfigurationInputStream(
|
|
|
|
|
|
+ this.rm.getRMContext().getConfigurationProvider()
|
|
|
|
+ .getConfigurationInputStream(
|
|
configuration, YarnConfiguration.DR_CONFIGURATION_FILE);
|
|
configuration, YarnConfiguration.DR_CONFIGURATION_FILE);
|
|
|
|
|
|
if (drInputStream != null) {
|
|
if (drInputStream != null) {
|
|
@@ -679,7 +681,7 @@ public class AdminService extends CompositeService implements
|
|
updateNodeResource(updateRequest);
|
|
updateNodeResource(updateRequest);
|
|
}
|
|
}
|
|
// refresh dynamic resource in ResourceTrackerService
|
|
// refresh dynamic resource in ResourceTrackerService
|
|
- this.rmContext.getResourceTrackerService().
|
|
|
|
|
|
+ this.rm.getRMContext().getResourceTrackerService().
|
|
updateDynamicResourceConfiguration(newConf);
|
|
updateDynamicResourceConfiguration(newConf);
|
|
RMAuditLogger.logSuccess(user.getShortUserName(), operation,
|
|
RMAuditLogger.logSuccess(user.getShortUserName(), operation,
|
|
"AdminService");
|
|
"AdminService");
|
|
@@ -692,7 +694,8 @@ public class AdminService extends CompositeService implements
|
|
private synchronized Configuration getConfiguration(Configuration conf,
|
|
private synchronized Configuration getConfiguration(Configuration conf,
|
|
String... confFileNames) throws YarnException, IOException {
|
|
String... confFileNames) throws YarnException, IOException {
|
|
for (String confFileName : confFileNames) {
|
|
for (String confFileName : confFileNames) {
|
|
- InputStream confFileInputStream = this.rmContext.getConfigurationProvider()
|
|
|
|
|
|
+ InputStream confFileInputStream =
|
|
|
|
+ this.rm.getRMContext().getConfigurationProvider()
|
|
.getConfigurationInputStream(conf, confFileName);
|
|
.getConfigurationInputStream(conf, confFileName);
|
|
if (confFileInputStream != null) {
|
|
if (confFileInputStream != null) {
|
|
conf.addResource(confFileInputStream);
|
|
conf.addResource(confFileInputStream);
|
|
@@ -746,7 +749,7 @@ public class AdminService extends CompositeService implements
|
|
AddToClusterNodeLabelsResponse response =
|
|
AddToClusterNodeLabelsResponse response =
|
|
recordFactory.newRecordInstance(AddToClusterNodeLabelsResponse.class);
|
|
recordFactory.newRecordInstance(AddToClusterNodeLabelsResponse.class);
|
|
try {
|
|
try {
|
|
- rmContext.getNodeLabelManager()
|
|
|
|
|
|
+ rm.getRMContext().getNodeLabelManager()
|
|
.addToCluserNodeLabels(request.getNodeLabels());
|
|
.addToCluserNodeLabels(request.getNodeLabels());
|
|
RMAuditLogger.logSuccess(user.getShortUserName(), operation,
|
|
RMAuditLogger.logSuccess(user.getShortUserName(), operation,
|
|
"AdminService");
|
|
"AdminService");
|
|
@@ -769,7 +772,8 @@ public class AdminService extends CompositeService implements
|
|
RemoveFromClusterNodeLabelsResponse response =
|
|
RemoveFromClusterNodeLabelsResponse response =
|
|
recordFactory.newRecordInstance(RemoveFromClusterNodeLabelsResponse.class);
|
|
recordFactory.newRecordInstance(RemoveFromClusterNodeLabelsResponse.class);
|
|
try {
|
|
try {
|
|
- rmContext.getNodeLabelManager().removeFromClusterNodeLabels(request.getNodeLabels());
|
|
|
|
|
|
+ rm.getRMContext().getNodeLabelManager()
|
|
|
|
+ .removeFromClusterNodeLabels(request.getNodeLabels());
|
|
RMAuditLogger
|
|
RMAuditLogger
|
|
.logSuccess(user.getShortUserName(), operation, "AdminService");
|
|
.logSuccess(user.getShortUserName(), operation, "AdminService");
|
|
return response;
|
|
return response;
|
|
@@ -805,19 +809,20 @@ public class AdminService extends CompositeService implements
|
|
boolean isKnown = false;
|
|
boolean isKnown = false;
|
|
// both active and inactive nodes are recognized as known nodes
|
|
// both active and inactive nodes are recognized as known nodes
|
|
if (requestedNode.getPort() != 0) {
|
|
if (requestedNode.getPort() != 0) {
|
|
- if (rmContext.getRMNodes().containsKey(requestedNode)
|
|
|
|
- || rmContext.getInactiveRMNodes().containsKey(requestedNode)) {
|
|
|
|
|
|
+ if (rm.getRMContext().getRMNodes().containsKey(requestedNode) || rm
|
|
|
|
+ .getRMContext().getInactiveRMNodes().containsKey(requestedNode)) {
|
|
isKnown = true;
|
|
isKnown = true;
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
- for (NodeId knownNode : rmContext.getRMNodes().keySet()) {
|
|
|
|
|
|
+ for (NodeId knownNode : rm.getRMContext().getRMNodes().keySet()) {
|
|
if (knownNode.getHost().equals(requestedNode.getHost())) {
|
|
if (knownNode.getHost().equals(requestedNode.getHost())) {
|
|
isKnown = true;
|
|
isKnown = true;
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (!isKnown) {
|
|
if (!isKnown) {
|
|
- for (NodeId knownNode : rmContext.getInactiveRMNodes().keySet()) {
|
|
|
|
|
|
+ for (NodeId knownNode : rm.getRMContext().getInactiveRMNodes()
|
|
|
|
+ .keySet()) {
|
|
if (knownNode.getHost().equals(requestedNode.getHost())) {
|
|
if (knownNode.getHost().equals(requestedNode.getHost())) {
|
|
isKnown = true;
|
|
isKnown = true;
|
|
break;
|
|
break;
|
|
@@ -841,7 +846,7 @@ public class AdminService extends CompositeService implements
|
|
}
|
|
}
|
|
}
|
|
}
|
|
try {
|
|
try {
|
|
- rmContext.getNodeLabelManager().replaceLabelsOnNode(
|
|
|
|
|
|
+ rm.getRMContext().getNodeLabelManager().replaceLabelsOnNode(
|
|
request.getNodeToLabels());
|
|
request.getNodeToLabels());
|
|
RMAuditLogger
|
|
RMAuditLogger
|
|
.logSuccess(user.getShortUserName(), operation, "AdminService");
|
|
.logSuccess(user.getShortUserName(), operation, "AdminService");
|
|
@@ -878,7 +883,7 @@ public class AdminService extends CompositeService implements
|
|
|
|
|
|
checkRMStatus(user.getShortUserName(), operation, msg);
|
|
checkRMStatus(user.getShortUserName(), operation, msg);
|
|
|
|
|
|
- Set<NodeId> decommissioningNodes = rmContext.getNodesListManager()
|
|
|
|
|
|
+ Set<NodeId> decommissioningNodes = rm.getRMContext().getNodesListManager()
|
|
.checkForDecommissioningNodes();
|
|
.checkForDecommissioningNodes();
|
|
RMAuditLogger.logSuccess(user.getShortUserName(), operation,
|
|
RMAuditLogger.logSuccess(user.getShortUserName(), operation,
|
|
"AdminService");
|
|
"AdminService");
|
|
@@ -914,6 +919,6 @@ public class AdminService extends CompositeService implements
|
|
getConfiguration(new Configuration(false),
|
|
getConfiguration(new Configuration(false),
|
|
YarnConfiguration.YARN_SITE_CONFIGURATION_FILE);
|
|
YarnConfiguration.YARN_SITE_CONFIGURATION_FILE);
|
|
|
|
|
|
- rmContext.getScheduler().setClusterMaxPriority(conf);
|
|
|
|
|
|
+ rm.getRMContext().getScheduler().setClusterMaxPriority(conf);
|
|
}
|
|
}
|
|
}
|
|
}
|