public void allocateResources(String partition, String user, int containers, Resource res, boolean decrPending) { if(partition == null || partition.equals(RMNodeLabelsManager.NO_LABEL)) { allocatedContainers.incr(containers); aggregateContainersAllocated.incr(containers); allocatedMB.incr(res.getMemorySize() * containers); allocatedVCores.incr(res.getVirtualCores() * containers); if (decrPending) { _decrPendingResources(containers, res); } QueueMetrics userMetrics = getUserMetrics(user); if (userMetrics != null) { userMetrics.allocateResources(partition, user, containers, res, decrPending); } if (parent != null) { parent.allocateResources(partition, user, containers, res, decrPending); } } }
public void allocateResources(String user, int containers, Resource res, boolean decrPending) { allocatedContainers.incr(containers); aggregateContainersAllocated.incr(containers); allocatedMB.incr(res.getMemory() * containers); allocatedVCores.incr(res.getVirtualCores() * containers); if (decrPending) { _decrPendingResources(containers, res); } QueueMetrics userMetrics = getUserMetrics(user); if (userMetrics != null) { userMetrics.allocateResources(user, containers, res, decrPending); } if (parent != null) { parent.allocateResources(user, containers, res, decrPending); } }
public void allocateResources(String user, int containers, Resource res, boolean decrPending) { allocatedContainers.incr(containers); aggregateContainersAllocated.incr(containers); allocatedMB.incr(res.getMemory() * containers); allocatedVCores.incr(res.getVirtualCores() * containers); if (decrPending) { _decrPendingResources(containers, res); } QueueMetrics userMetrics = getUserMetrics(user); if (userMetrics != null) { userMetrics.allocateResources(user, containers, res, decrPending); } if (parent != null) { parent.allocateResources(user, containers, res, decrPending); } }
/** * Allocate Resource for container size change. * @param partition Node Partition * @param user * @param res */ public void allocateResources(String partition, String user, Resource res) { if(partition == null || partition.equals(RMNodeLabelsManager.NO_LABEL)) { allocatedMB.incr(res.getMemorySize()); allocatedVCores.incr(res.getVirtualCores()); pendingMB.decr(res.getMemorySize()); pendingVCores.decr(res.getVirtualCores()); QueueMetrics userMetrics = getUserMetrics(user); if (userMetrics != null) { userMetrics.allocateResources(partition, user, res); } if (parent != null) { parent.allocateResources(partition, user, res); } } }
public void recoverContainer(RMContainer rmContainer, String partition) { if (rmContainer.getExecutionType() != ExecutionType.GUARANTEED) { return; } try { this.writeLock.lock(); QueueMetrics metrics = queue.getMetrics(); if (pending) { // If there was any container to recover, the application was // running from scheduler's POV. pending = false; metrics.runAppAttempt(applicationId, user); } // Container is completed. Skip recovering resources. if (rmContainer.getState().equals(RMContainerState.COMPLETED)) { return; } metrics.allocateResources(partition, user, 1, rmContainer.getAllocatedResource(), false); } finally { this.writeLock.unlock(); } }
public synchronized void recoverContainer(RMContainer rmContainer) { QueueMetrics metrics = queue.getMetrics(); if (pending) { // If there was any container to recover, the application was // running from scheduler's POV. pending = false; metrics.runAppAttempt(applicationId, user); } // Container is completed. Skip recovering resources. if (rmContainer.getState().equals(RMContainerState.COMPLETED)) { return; } metrics.allocateResources(user, 1, rmContainer.getAllocatedResource(), false); }
public synchronized void recoverContainer(RMContainer rmContainer) { QueueMetrics metrics = queue.getMetrics(); if (pending) { // If there was any container to recover, the application was // running from scheduler's POV. pending = false; metrics.runAppAttempt(applicationId, user); } // Container is completed. Skip recovering resources. if (rmContainer.getState().equals(RMContainerState.COMPLETED)) { return; } metrics.allocateResources(user, 1, rmContainer.getAllocatedResource(), false); }
public synchronized void move(Queue newQueue) { QueueMetrics oldMetrics = queue.getMetrics(); QueueMetrics newMetrics = newQueue.getMetrics(); String user = getUser(); for (RMContainer liveContainer : liveContainers.values()) { Resource resource = liveContainer.getContainer().getResource(); oldMetrics.releaseResources(user, 1, resource); newMetrics.allocateResources(user, 1, resource, false); } for (Map<NodeId, RMContainer> map : reservedContainers.values()) { for (RMContainer reservedContainer : map.values()) { Resource resource = reservedContainer.getReservedResource(); oldMetrics.unreserveResource(user, resource); newMetrics.reserveResource(user, resource); } } appSchedulingInfo.move(newQueue); this.queue = newQueue; }
public static void updateMetrics(ApplicationId applicationId, NodeType type, SchedulerNode node, Container containerAllocated, String user, Queue queue) { if (LOG.isDebugEnabled()) { LOG.debug("allocate: applicationId=" + applicationId + " container=" + containerAllocated.getId() + " host=" + containerAllocated .getNodeId().toString() + " user=" + user + " resource=" + containerAllocated.getResource() + " type=" + type); } if(node != null) { queue.getMetrics().allocateResources(node.getPartition(), user, 1, containerAllocated.getResource(), true); } queue.getMetrics().incrNodeTypeAggregations(user, type); }
public synchronized void move(Queue newQueue) { QueueMetrics oldMetrics = queue.getMetrics(); QueueMetrics newMetrics = newQueue.getMetrics(); String user = getUser(); for (RMContainer liveContainer : liveContainers.values()) { Resource resource = liveContainer.getContainer().getResource(); oldMetrics.releaseResources(user, 1, resource); newMetrics.allocateResources(user, 1, resource, false); } for (Map<NodeId, RMContainer> map : reservedContainers.values()) { for (RMContainer reservedContainer : map.values()) { Resource resource = reservedContainer.getReservedResource(); oldMetrics.unreserveResource(user, resource); newMetrics.reserveResource(user, resource); } } appSchedulingInfo.move(newQueue); this.queue = newQueue; }
+ " type=" + type); metrics.allocateResources(user, 1, request.getCapability(), true); metrics.incrNodeTypeAggregations(user, type); return resourceRequests;
+ " type=" + type); metrics.allocateResources(user, 1, request.getCapability(), true); metrics.incrNodeTypeAggregations(user, type); return resourceRequests;
oldMetrics.releaseResources(liveContainer.getNodeLabelExpression(), user, 1, resource); newMetrics.allocateResources(liveContainer.getNodeLabelExpression(), user, 1, resource, false);
queueA1M.incrPendingResources(rmContainer.getNodeLabelExpression(), "user1", 1, resource); queueA1M.allocateResources(rmContainer.getNodeLabelExpression(), "user1", resource);
checkApps(queueSource, 1, 0, 1, 0, 0, 0, true); metrics.allocateResources(user, 3, Resources.createResource(2*GB, 2), true); checkResources(queueSource, 6*GB, 6, 3, 3, 0, 100*GB, 100, 9*GB, 9, 2, 0, 0, 0);
checkApps(userSource, 1, 0, 1, 0, 0, 0, true); metrics.allocateResources(RMNodeLabelsManager.NO_LABEL, user, 3, Resources.createResource(2*GB, 2), true); metrics.reserveResource(RMNodeLabelsManager.NO_LABEL,
checkApps(queueSource, 1, 0, 1, 0, 0, 0, true); metrics.allocateResources(RMNodeLabelsManager.NO_LABEL, user, 3, Resources.createResource(2*GB, 2), true); checkResources(queueSource, 6*GB, 6, 3, 3, 0, 100*GB, 100, 9*GB, 9, 2, 0, 0, 0);
checkApps(userSource, 1, 0, 1, 0, 0, 0, true); metrics.allocateResources(user, 3, Resources.createResource(2*GB, 2), true); checkResources(queueSource, 6*GB, 6, 3, 3, 0, 100*GB, 100, 9*GB, 9, 2, 0, 0, 0); checkResources(userSource, 6*GB, 6, 3, 3, 0, 10*GB, 10, 9*GB, 9, 2, 0, 0, 0);
checkApps(userSource, 1, 0, 1, 0, 0, 0, true); metrics.allocateResources(RMNodeLabelsManager.NO_LABEL, user, 3, Resources.createResource(2*GB, 2), true); checkResources(queueSource, 6*GB, 6, 3, 3, 0, 100*GB, 100, 9*GB, 9, 2, 0, 0, 0);
checkApps(userSource, 1, 0, 1, 0, 0, 0, true); metrics.allocateResources(user, 3, Resources.createResource(2*GB, 2), true); metrics.reserveResource(user, Resources.createResource(3*GB, 3));