@Override protected Queue getPlanQueue(String planQueueName) { Queue planQueue = fs.getQueueManager().getParentQueue(planQueueName, false); if (planQueue == null) { LOG.error("The queue " + planQueueName + " cannot be found or is not a " + "ParentQueue"); } return planQueue; }
@Override protected void createDefaultReservationQueue(String planQueueName, Queue queue, String defReservationId) { String defReservationQueueName = getReservationQueueName(planQueueName, defReservationId); if (!fs.getQueueManager().exists(defReservationQueueName)) { fs.getQueueManager().getLeafQueue(defReservationQueueName, true); } }
@Override protected void createDefaultReservationQueue(String planQueueName, Queue queue, String defReservationId) { String defReservationQueueName = getReservationQueueName(planQueueName, defReservationId); if (!fs.getQueueManager().exists(defReservationQueueName)) { fs.getQueueManager().getLeafQueue(defReservationQueueName, true); } }
@Override protected void createDefaultReservationQueue(String planQueueName, Queue queue, String defReservationId) { String defReservationQueueName = getReservationQueueName(planQueueName, defReservationId); if (!fs.getQueueManager().exists(defReservationQueueName)) { fs.getQueueManager().getLeafQueue(defReservationQueueName, true); } }
@Override protected String getReservationQueueName(String planQueueName, String reservationQueueName) { String planQueueNameFullPath = fs.getQueueManager().getQueue (planQueueName).getName(); if (!reservationQueueName.startsWith(planQueueNameFullPath)) { // If name is not a path we need full path for FairScheduler. See // YARN-2773 for the root cause return planQueueNameFullPath + "." + reservationQueueName; } return reservationQueueName; }
@Override protected String getReservationQueueName(String planQueueName, String reservationQueueName) { String planQueueNameFullPath = fs.getQueueManager().getQueue (planQueueName).getName(); if (!reservationQueueName.startsWith(planQueueNameFullPath)) { // If name is not a path we need full path for FairScheduler. See // YARN-2773 for the root cause return planQueueNameFullPath + "." + reservationQueueName; } return reservationQueueName; }
@Override protected String getReservationQueueName(String planQueueName, String reservationQueueName) { String planQueueNameFullPath = fs.getQueueManager().getQueue (planQueueName).getName(); if (!reservationQueueName.startsWith(planQueueNameFullPath)) { // If name is not a path we need full path for FairScheduler. See // YARN-2773 for the root cause return planQueueNameFullPath + "." + reservationQueueName; } return reservationQueueName; }
@Override protected Resource getPlanQueueCapacity(String planQueueName) { return fairScheduler.getQueueManager().getParentQueue(planQueueName, false) .getSteadyFairShare(); }
public FairSchedulerInfo(FairScheduler fs) { scheduler = fs; rootQueue = new FairSchedulerQueueInfo(scheduler.getQueueManager(). getRootQueue(), scheduler); }
@Override protected Resource getPlanQueueCapacity(String planQueueName) { return fairScheduler.getQueueManager().getParentQueue(planQueueName, false) .getSteadyFairShare(); }
@Override protected void addReservationQueue(String planQueueName, Queue queue, String currResId) { String leafQueueName = getReservationQueueName(planQueueName, currResId); fs.getQueueManager().getLeafQueue(leafQueueName, true); }
@Override public Plan getPlan(String planName) { // make sure plan name is a full queue name in fair scheduler. For example, // "root.default" is the full queue name for "default". FSQueue queue = fairScheduler.getQueueManager().getQueue(planName); if (queue != null) { return super.getPlan(queue.getQueueName()); } else { return null; } } }
@Override protected Queue getReservationQueue(String r) { return fs.getQueueManager().getLeafQueue( plan.getQueueName() + "" + "." + r, false); }
@Override protected Queue getReservationQueue(String r) { return fs.getQueueManager().getLeafQueue(plan.getQueueName() + "" + "." + r, false); }
private void verifyLeafQueueStarvation() { for (String q : QUEUES) { if (!q.equals("no-preemption")) { boolean isStarved = scheduler.getQueueManager().getLeafQueue(q, false).isStarved(); assertTrue(isStarved); } } }
@Override protected void assertReservationQueueExists(ReservationId r, double expectedCapacity, double expectedMaxCapacity) { FSLeafQueue q = fs.getQueueManager().getLeafQueue(plan.getQueueName() + "" + "." + r, false); assertNotNull(q); // For now we are setting both to same weight Assert.assertEquals(expectedCapacity, q.getWeight(), 0.01); }
private void verifyQueueNumRunnable(String queueName, int numRunnableInQueue, int numNonRunnableInQueue) { FSLeafQueue queue = scheduler.getQueueManager().getLeafQueue(queueName, false); assertEquals(numRunnableInQueue, queue.getNumRunnableApps()); assertEquals(numNonRunnableInQueue, queue.getNumNonRunnableApps()); }
@Override protected void assertReservationQueueExists(ReservationId r, double expectedCapacity, double expectedMaxCapacity) { FSLeafQueue q = fs.getQueueManager().getLeafQueue(plan.getQueueName() + "" + "." + r, false); assertNotNull(q); // For now we are setting both to same weight Assert.assertEquals(expectedCapacity, q.getWeights().getWeight (ResourceType.MEMORY), 0.01); }
@Test (expected = YarnException.class) public void testMoveWouldViolateMaxAppsConstraints() throws Exception { scheduler.init(conf); scheduler.start(); scheduler.reinitialize(conf, resourceManager.getRMContext()); QueueManager queueMgr = scheduler.getQueueManager(); queueMgr.getLeafQueue("queue2", true); scheduler.getAllocationConfiguration().queueMaxApps.put("root.queue2", 0); ApplicationAttemptId appAttId = createSchedulingRequest(1024, 1, "queue1", "user1", 3); scheduler.moveApplication(appAttId.getApplicationId(), "queue2"); }
@Test (expected = YarnException.class) public void testMoveToNonexistentQueue() throws Exception { scheduler.init(conf); scheduler.start(); scheduler.reinitialize(conf, resourceManager.getRMContext()); scheduler.getQueueManager().getLeafQueue("queue1", true); ApplicationAttemptId appAttId = createSchedulingRequest(1024, 1, "queue1", "user1", 3); scheduler.moveApplication(appAttId.getApplicationId(), "queue2"); }