synchronized public void stop(RMAppAttemptState rmAppAttemptFinalState) { // clear pending resources metrics for the application QueueMetrics metrics = queue.getMetrics(); for (Map<String, ResourceRequest> asks : requests.values()) { ResourceRequest request = asks.get(ResourceRequest.ANY); if (request != null) { metrics.decrPendingResources(user, request.getNumContainers(), request.getCapability()); } } metrics.finishAppAttempt(applicationId, pending, user); // Clear requests themselves clearRequests(); }
synchronized public void stop(RMAppAttemptState rmAppAttemptFinalState) { // clear pending resources metrics for the application QueueMetrics metrics = queue.getMetrics(); for (Map<String, ResourceRequest> asks : requests.values()) { ResourceRequest request = asks.get(ResourceRequest.ANY); if (request != null) { metrics.decrPendingResources(user, request.getNumContainers(), request.getCapability()); } } metrics.finishAppAttempt(applicationId, pending, user); // Clear requests themselves clearRequests(); }
public void stop() { // clear pending resources metrics for the application try { this.writeLock.lock(); QueueMetrics metrics = queue.getMetrics(); for (AppPlacementAllocator ap : schedulerKeyToAppPlacementAllocator .values()) { PendingAsk ask = ap.getPendingAsk(ResourceRequest.ANY); if (ask.getCount() > 0) { metrics.decrPendingResources(ap.getPrimaryRequestedNodePartition(), user, ask.getCount(), ask.getPerAllocationResource()); // Update Queue queue.decPendingResource( ap.getPrimaryRequestedNodePartition(), Resources.multiply(ask.getPerAllocationResource(), ask.getCount())); } } metrics.finishAppAttempt(applicationId, pending, user); // Clear requests themselves clearRequests(); } finally { this.writeLock.unlock(); } }