YARN-4784. Fairscheduler: defaultQueueSchedulingPolicy should not accept FIFO. (Yufei Gu via kasha)
This commit is contained in:
parent
6e297836d6
commit
170c4fd4cd
@ -42,6 +42,7 @@
|
|||||||
import org.apache.hadoop.yarn.api.records.ReservationACL;
|
import org.apache.hadoop.yarn.api.records.ReservationACL;
|
||||||
import org.apache.hadoop.yarn.api.records.Resource;
|
import org.apache.hadoop.yarn.api.records.Resource;
|
||||||
import org.apache.hadoop.yarn.server.resourcemanager.resource.ResourceWeights;
|
import org.apache.hadoop.yarn.server.resourcemanager.resource.ResourceWeights;
|
||||||
|
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.policies.FifoPolicy;
|
||||||
import org.apache.hadoop.yarn.util.Clock;
|
import org.apache.hadoop.yarn.util.Clock;
|
||||||
import org.apache.hadoop.yarn.util.SystemClock;
|
import org.apache.hadoop.yarn.util.SystemClock;
|
||||||
import org.apache.hadoop.yarn.util.resource.Resources;
|
import org.apache.hadoop.yarn.util.resource.Resources;
|
||||||
@ -331,6 +332,11 @@ public synchronized void reloadAllocations() throws IOException,
|
|||||||
} else if ("defaultQueueSchedulingPolicy".equals(element.getTagName())
|
} else if ("defaultQueueSchedulingPolicy".equals(element.getTagName())
|
||||||
|| "defaultQueueSchedulingMode".equals(element.getTagName())) {
|
|| "defaultQueueSchedulingMode".equals(element.getTagName())) {
|
||||||
String text = ((Text)element.getFirstChild()).getData().trim();
|
String text = ((Text)element.getFirstChild()).getData().trim();
|
||||||
|
if (text.equalsIgnoreCase(FifoPolicy.NAME)) {
|
||||||
|
throw new AllocationConfigurationException("Bad fair scheduler "
|
||||||
|
+ "config file: defaultQueueSchedulingPolicy or "
|
||||||
|
+ "defaultQueueSchedulingMode can't be FIFO.");
|
||||||
|
}
|
||||||
defaultSchedPolicy = SchedulingPolicy.parse(text);
|
defaultSchedPolicy = SchedulingPolicy.parse(text);
|
||||||
} else if ("queuePlacementPolicy".equals(element.getTagName())) {
|
} else if ("queuePlacementPolicy".equals(element.getTagName())) {
|
||||||
placementPolicyElement = element;
|
placementPolicyElement = element;
|
||||||
|
@ -580,6 +580,28 @@ public void testQueueNameContainingOnlyWhitespace() throws Exception {
|
|||||||
allocLoader.reloadAllocations();
|
allocLoader.reloadAllocations();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Verify that defaultQueueSchedulingMode can't accept FIFO as a value.
|
||||||
|
*/
|
||||||
|
@Test (expected = AllocationConfigurationException.class)
|
||||||
|
public void testDefaultQueueSchedulingModeIsFIFO() throws Exception {
|
||||||
|
Configuration conf = new Configuration();
|
||||||
|
conf.set(FairSchedulerConfiguration.ALLOCATION_FILE, ALLOC_FILE);
|
||||||
|
|
||||||
|
PrintWriter out = new PrintWriter(new FileWriter(ALLOC_FILE));
|
||||||
|
out.println("<?xml version=\"1.0\"?>");
|
||||||
|
out.println("<allocations>");
|
||||||
|
out.println("<defaultQueueSchedulingPolicy>fifo</defaultQueueSchedulingPolicy>");
|
||||||
|
out.println("</allocations>");
|
||||||
|
out.close();
|
||||||
|
|
||||||
|
AllocationFileLoaderService allocLoader = new AllocationFileLoaderService();
|
||||||
|
allocLoader.init(conf);
|
||||||
|
ReloadListener confHolder = new ReloadListener();
|
||||||
|
allocLoader.setReloadListener(confHolder);
|
||||||
|
allocLoader.reloadAllocations();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testReservableQueue() throws Exception {
|
public void testReservableQueue() throws Exception {
|
||||||
Configuration conf = new Configuration();
|
Configuration conf = new Configuration();
|
||||||
|
Loading…
Reference in New Issue
Block a user