/** * Builds a QueuePlacementPolicy from an xml element. */ public static QueuePlacementPolicy fromXml(Element el, Map<FSQueueType, Set<String>> configuredQueues, Configuration conf) throws AllocationConfigurationException { List<QueuePlacementRule> rules = new ArrayList<QueuePlacementRule>(); NodeList elements = el.getChildNodes(); for (int i = 0; i < elements.getLength(); i++) { Node node = elements.item(i); if (node instanceof Element) { QueuePlacementRule rule = createAndInitializeRule(node); rules.add(rule); } } return new QueuePlacementPolicy(rules, configuredQueues, conf); }
/** * Builds a QueuePlacementPolicy from an xml element. */ public static QueuePlacementPolicy fromXml(Element el, Map<FSQueueType, Set<String>> configuredQueues, Configuration conf) throws AllocationConfigurationException { List<QueuePlacementRule> rules = new ArrayList<QueuePlacementRule>(); NodeList elements = el.getChildNodes(); for (int i = 0; i < elements.getLength(); i++) { Node node = elements.item(i); if (node instanceof Element) { QueuePlacementRule rule = createAndInitializeRule(node); rules.add(rule); } } return new QueuePlacementPolicy(rules, configuredQueues, conf); }
/** * Builds a QueuePlacementPolicy from an xml element. */ public static QueuePlacementPolicy fromXml(Element el, Map<FSQueueType, Set<String>> configuredQueues, Configuration conf) throws AllocationConfigurationException { List<QueuePlacementRule> rules = new ArrayList<QueuePlacementRule>(); NodeList elements = el.getChildNodes(); for (int i = 0; i < elements.getLength(); i++) { Node node = elements.item(i); if (node instanceof Element) { QueuePlacementRule rule = createAndInitializeRule(node); rules.add(rule); } } return new QueuePlacementPolicy(rules, configuredQueues, conf); }
/** * Build a simple queue placement policy from the allow-undeclared-pools and * user-as-default-queue configuration options. */ public static QueuePlacementPolicy fromConfiguration(Configuration conf, Map<FSQueueType, Set<String>> configuredQueues) { boolean create = conf.getBoolean( FairSchedulerConfiguration.ALLOW_UNDECLARED_POOLS, FairSchedulerConfiguration.DEFAULT_ALLOW_UNDECLARED_POOLS); boolean userAsDefaultQueue = conf.getBoolean( FairSchedulerConfiguration.USER_AS_DEFAULT_QUEUE, FairSchedulerConfiguration.DEFAULT_USER_AS_DEFAULT_QUEUE); List<QueuePlacementRule> rules = new ArrayList<QueuePlacementRule>(); rules.add(new QueuePlacementRule.Specified().initialize(create, null)); if (userAsDefaultQueue) { rules.add(new QueuePlacementRule.User().initialize(create, null)); } if (!userAsDefaultQueue || !create) { rules.add(new QueuePlacementRule.Default().initialize(true, null)); } try { return new QueuePlacementPolicy(rules, configuredQueues, conf); } catch (AllocationConfigurationException ex) { throw new RuntimeException("Should never hit exception when loading" + "placement policy from conf", ex); } }
/** * Build a simple queue placement policy from the allow-undeclared-pools and * user-as-default-queue configuration options. */ public static QueuePlacementPolicy fromConfiguration(Configuration conf, Map<FSQueueType, Set<String>> configuredQueues) { boolean create = conf.getBoolean( FairSchedulerConfiguration.ALLOW_UNDECLARED_POOLS, FairSchedulerConfiguration.DEFAULT_ALLOW_UNDECLARED_POOLS); boolean userAsDefaultQueue = conf.getBoolean( FairSchedulerConfiguration.USER_AS_DEFAULT_QUEUE, FairSchedulerConfiguration.DEFAULT_USER_AS_DEFAULT_QUEUE); List<QueuePlacementRule> rules = new ArrayList<QueuePlacementRule>(); rules.add(new QueuePlacementRule.Specified().initialize(create, null)); if (userAsDefaultQueue) { rules.add(new QueuePlacementRule.User().initialize(create, null)); } if (!userAsDefaultQueue || !create) { rules.add(new QueuePlacementRule.Default().initialize(true, null)); } try { return new QueuePlacementPolicy(rules, configuredQueues, conf); } catch (AllocationConfigurationException ex) { throw new RuntimeException("Should never hit exception when loading" + "placement policy from conf", ex); } }
/** * Build a simple queue placement policy from the allow-undeclared-pools and * user-as-default-queue configuration options. */ public static QueuePlacementPolicy fromConfiguration(Configuration conf, Map<FSQueueType, Set<String>> configuredQueues) { boolean create = conf.getBoolean( FairSchedulerConfiguration.ALLOW_UNDECLARED_POOLS, FairSchedulerConfiguration.DEFAULT_ALLOW_UNDECLARED_POOLS); boolean userAsDefaultQueue = conf.getBoolean( FairSchedulerConfiguration.USER_AS_DEFAULT_QUEUE, FairSchedulerConfiguration.DEFAULT_USER_AS_DEFAULT_QUEUE); List<QueuePlacementRule> rules = new ArrayList<QueuePlacementRule>(); rules.add(new QueuePlacementRule.Specified().initialize(create, null)); if (userAsDefaultQueue) { rules.add(new QueuePlacementRule.User().initialize(create, null)); } if (!userAsDefaultQueue || !create) { rules.add(new QueuePlacementRule.Default().initialize(true, null)); } try { return new QueuePlacementPolicy(rules, configuredQueues, conf); } catch (AllocationConfigurationException ex) { throw new RuntimeException("Should never hit exception when loading" + "placement policy from conf", ex); } }
configuredQueues.put(FSQueueType.PARENT, new HashSet<String>()); scheduler.getAllocationConfiguration().placementPolicy = new QueuePlacementPolicy(rules, configuredQueues, conf); appId = createSchedulingRequest(1024, "somequeue", "user1"); assertEquals("root.somequeue", scheduler.getSchedulerApp(appId).getQueueName()); rules.add(new QueuePlacementRule.Default().initialize(true, null)); scheduler.getAllocationConfiguration().placementPolicy = new QueuePlacementPolicy(rules, configuredQueues, conf); appId = createSchedulingRequest(1024, "somequeue", "user1"); assertEquals("root.user1", scheduler.getSchedulerApp(appId).getQueueName());
configuredQueues.put(FSQueueType.PARENT, new HashSet<String>()); scheduler.getAllocationConfiguration().placementPolicy = new QueuePlacementPolicy(rules, configuredQueues, conf); appId = createSchedulingRequest(1024, "somequeue", "user1"); assertEquals("root.somequeue", scheduler.getSchedulerApp(appId).getQueueName()); rules.add(new QueuePlacementRule.Default().initialize(true, null)); scheduler.getAllocationConfiguration().placementPolicy = new QueuePlacementPolicy(rules, configuredQueues, conf); appId = createSchedulingRequest(1024, "somequeue", "user1"); assertEquals("root.user1", scheduler.getSchedulerApp(appId).getQueueName());