diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSAMContainerLaunchDiagnosticsConstants.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSAMContainerLaunchDiagnosticsConstants.java index 4cc062c..6de2134 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSAMContainerLaunchDiagnosticsConstants.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSAMContainerLaunchDiagnosticsConstants.java @@ -32,4 +32,6 @@ String USER_AM_RESOURCE_LIMIT_EXCEED = "User's AM resource limit exceeded. "; String LAST_NODE_PROCESSED_MSG = " Last Node which was processed for the application : "; + String CLUSTER_RESOURCE_EMPTY = + "Skipping AM assignment as cluster resource is empty. "; } diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/LeafQueue.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/LeafQueue.java index eecd4ba..6b4d668 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/LeafQueue.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/LeafQueue.java @@ -752,9 +752,11 @@ private void activateApplications() { } else{ application.updateAMContainerDiagnostics(AMState.INACTIVATED, CSAMContainerLaunchDiagnosticsConstants.QUEUE_AM_RESOURCE_LIMIT_EXCEED); - LOG.info("Not activating application " + applicationId - + " as amIfStarted: " + amIfStarted + " exceeds amLimit: " - + amLimit); + if (LOG.isDebugEnabled()) { + LOG.debug("Not activating application " + applicationId + + " as amIfStarted: " + amIfStarted + " exceeds amLimit: " + + amLimit); + } continue; } } @@ -785,10 +787,11 @@ private void activateApplications() { } else{ application.updateAMContainerDiagnostics(AMState.INACTIVATED, CSAMContainerLaunchDiagnosticsConstants.USER_AM_RESOURCE_LIMIT_EXCEED); - LOG.info( - "Not activating application " + applicationId + " for user: " - + user + " as userAmIfStarted: " + userAmIfStarted - + " exceeds userAmLimit: " + userAMLimit); + if (LOG.isDebugEnabled()) { + LOG.debug("Not activating application " + applicationId + + " for user: " + user + " as userAmIfStarted: " + + userAmIfStarted + " exceeds userAmLimit: " + userAMLimit); + } continue; } } @@ -824,7 +827,17 @@ private void addApplicationAttempt(FiCaSchedulerApp application, application); // Activate applications - activateApplications(); + if (!Resources.greaterThan(resourceCalculator, lastClusterResource, + lastClusterResource, Resources.none()) + && !(getNumActiveApplications() < 1)) { + activateApplications(); + } else { + application.updateAMContainerDiagnostics(AMState.INACTIVATED, + CSAMContainerLaunchDiagnosticsConstants.CLUSTER_RESOURCE_EMPTY); + LOG.info("Skiping activateApplications for " + + application.getApplicationAttemptId() + + " since cluster resorce is " + Resources.none()); + } LOG.info( "Application added -" + " appId: " + application.getApplicationId()