public List<FiCaSchedulerApp> getScheduleableApplications() { try { readLock.lock(); List<FiCaSchedulerApp> apps = new ArrayList<>(); for (CSQueue childQueue : getChildQueues()) { apps.addAll(((LeafQueue) childQueue).getApplications()); } return Collections.unmodifiableList(apps); } finally { readLock.unlock(); } }
private Resource calculateUsedAMResourcesPerQueue(String partition, LeafQueue leafQueue, Map<String, Resource> perUserAMUsed) { Collection<FiCaSchedulerApp> runningApps = leafQueue.getApplications(); Resource amUsed = Resources.createResource(0, 0); synchronized (leafQueue) { for (FiCaSchedulerApp app : runningApps) { Resource userAMResource = perUserAMUsed.get(app.getUser()); if (null == userAMResource) { userAMResource = Resources.createResource(0, 0); perUserAMUsed.put(app.getUser(), userAMResource); } Resources.addTo(userAMResource, app.getAMResource(partition)); Resources.addTo(amUsed, app.getAMResource(partition)); } } return amUsed; }
public FiCaSchedulerApp getApp(String queueName, int appId) { for (FiCaSchedulerApp app : ((LeafQueue) cs.getQueue(queueName)) .getApplications()) { if (app.getApplicationId().getId() == appId) { return app; } } return null; }
(NavigableSet<FiCaSchedulerApp>) qT.leafQueue.getApplications(); Iterator<FiCaSchedulerApp> desc = ns.descendingIterator(); qT.actuallyPreempted = Resources.clone(resToObtain);
(NavigableSet<FiCaSchedulerApp>) qT.leafQueue.getApplications(); Iterator<FiCaSchedulerApp> desc = ns.descendingIterator(); qT.actuallyPreempted = Resources.clone(resToObtain);
new HashMap<>(); Resource totalPendingConsideringUserLimit = Resource.newInstance(0, 0); for (FiCaSchedulerApp app : getApplications()) { String userName = app.getUser(); if (!userNameToHeadroom.containsKey(userName)) {
when(leafQueue.getApplications()).thenReturn(apps); when(leafQueue.getAllApplications()).thenReturn(apps); OrderingPolicy<FiCaSchedulerApp> so = mock(OrderingPolicy.class);
.thenReturn(appAttemptIdList); when(lq.getApplications()).thenReturn(qApps); if(setAMResourcePercent != 0.0f){ when(lq.getMaxAMResourcePerQueuePercent()).thenReturn(setAMResourcePercent);
queue.getApplications().add(app); queue.getAllApplications().add(app); when(queue.getMinimumAllocation())
.thenReturn(appAttemptIdList); when(lq.getApplications()).thenReturn(qApps); @SuppressWarnings("unchecked") OrderingPolicy<FiCaSchedulerApp> so = mock(OrderingPolicy.class);
void printString(CSQueue nq, String indent) { if (nq instanceof ParentQueue) { System.out.println(indent + nq.getQueueName() + " cur:" + nq.getAbsoluteUsedCapacity() + " guar:" + nq.getAbsoluteCapacity() ); for (CSQueue q : ((ParentQueue)nq).getChildQueues()) { printString(q, indent + " "); } } else { System.out.println(indent + nq.getQueueName() + " pen:" + ((LeafQueue) nq) .getTotalPendingResourcesConsideringUserLimit(isA(Resource.class)) + " cur:" + nq.getAbsoluteUsedCapacity() + " guar:" + nq.getAbsoluteCapacity() ); for (FiCaSchedulerApp a : ((LeafQueue)nq).getApplications()) { System.out.println(indent + " " + a.getApplicationId()); } } }
assertEquals(q.getApplications().size(), 2); assertEquals(q.getApplications().iterator().next() .getApplicationAttemptId(), appAttemptId2);
private void killAppAndVerifyOrderingPolicy(MockRM rm, CSQueue defaultQueue, int appsPendingExpected, int activeAppsExpected, RMApp app) throws YarnException { CapacityScheduler cs = (CapacityScheduler) rm.getResourceScheduler(); UserGroupInformation ugi = UserGroupInformation .createRemoteUser(app.getUser()); cs.updateApplicationPriority(Priority.newInstance(2), app.getApplicationId(), null, ugi); SchedulerEvent removeAttempt; removeAttempt = new AppAttemptRemovedSchedulerEvent( app.getCurrentAppAttempt().getAppAttemptId(), RMAppAttemptState.KILLED, false); cs.handle(removeAttempt); rm.drainEvents(); Collection<FiCaSchedulerApp> appsPending = ((LeafQueue) defaultQueue).getPendingApplications(); Collection<FiCaSchedulerApp> activeApps = ((LeafQueue) defaultQueue).getApplications(); Assert.assertEquals("Pending apps should be " + appsPendingExpected, appsPendingExpected, appsPending.size()); Assert.assertEquals("Active apps should be " + activeAppsExpected, activeAppsExpected, activeApps.size()); }
assertEquals(1, queue.getNumActiveApplications(user_0)); assertEquals(0, queue.getNumPendingApplications(user_0)); assertTrue(queue.getApplications().contains(app_0)); assertEquals(2, queue.getNumActiveApplications(user_0)); assertEquals(0, queue.getNumPendingApplications(user_0)); assertTrue(queue.getApplications().contains(app_1)); assertEquals(1, queue.getNumPendingApplications(user_0)); assertFalse(queue.getPendingApplications().contains(app_2)); assertFalse(queue.getApplications().contains(app_2)); assertEquals(2, queue.getNumActiveApplications(user_0)); assertEquals(0, queue.getNumPendingApplications(user_0)); assertTrue(queue.getApplications().contains(app_3)); assertFalse(queue.getPendingApplications().contains(app_3)); assertFalse(queue.getApplications().contains(app_0)); assertEquals(1, queue.getNumActiveApplications(user_0)); assertEquals(0, queue.getNumPendingApplications(user_0)); assertFalse(queue.getApplications().contains(app_1)); assertEquals(0, queue.getNumActiveApplications(user_0)); assertEquals(0, queue.getNumPendingApplications(user_0)); assertFalse(queue.getApplications().contains(app_3));
Assert.assertEquals(2, ((LeafQueue)cs.getQueue("a1")).getApplications().size()); Assert.assertEquals(1, ((LeafQueue)cs.getQueue("a2")).getApplications().size()); Assert.assertEquals(1, ((LeafQueue)cs.getQueue("b")).getApplications().size());