merge -r 1309132:1309133 from trunk. FIXES: MAPREDUCE-4020
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1309134 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
40a8dfa3c6
commit
4a3e9514c3
|
@ -138,6 +138,9 @@ Release 0.23.3 - UNRELEASED
|
|||
MAPREDUCE-3999. Tracking link gives an error if the AppMaster hasn't
|
||||
started yet (Ravi Prakash via bobby)
|
||||
|
||||
MAPREDUCE-4020. Web services returns incorrect JSON for deep queue tree
|
||||
(Anupam Seth via tgraves)
|
||||
|
||||
Release 0.23.2 - UNRELEASED
|
||||
|
||||
INCOMPATIBLE CHANGES
|
||||
|
|
|
@ -100,8 +100,8 @@ class CapacitySchedulerPage extends RmView {
|
|||
@Override
|
||||
public void render(Block html) {
|
||||
ArrayList<CapacitySchedulerQueueInfo> subQueues =
|
||||
(csqinfo.qinfo == null) ? csqinfo.csinfo.getSubQueues()
|
||||
: csqinfo.qinfo.getSubQueues();
|
||||
(csqinfo.qinfo == null) ? csqinfo.csinfo.getQueues().getQueueInfoList()
|
||||
: csqinfo.qinfo.getQueues().getQueueInfoList();
|
||||
UL<Hamlet> ul = html.ul("#pq");
|
||||
for (CapacitySchedulerQueueInfo info : subQueues) {
|
||||
float used = info.getUsedCapacity() / 100;
|
||||
|
@ -122,7 +122,7 @@ class CapacitySchedulerPage extends RmView {
|
|||
_(join(percent(used), " used"))._();
|
||||
|
||||
csqinfo.qinfo = info;
|
||||
if (info.getSubQueues() == null) {
|
||||
if (info.getQueues() == null) {
|
||||
li.ul("#lq").li()._(LeafQueueInfoBlock.class)._()._();
|
||||
} else {
|
||||
li._(QueueBlock.class);
|
||||
|
|
|
@ -34,6 +34,7 @@ import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.AppInfo;
|
|||
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.AppsInfo;
|
||||
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.CapacitySchedulerInfo;
|
||||
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.CapacitySchedulerQueueInfo;
|
||||
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.CapacitySchedulerQueueInfoList;
|
||||
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.ClusterInfo;
|
||||
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.ClusterMetricsInfo;
|
||||
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.FifoSchedulerInfo;
|
||||
|
@ -57,7 +58,7 @@ public class JAXBContextResolver implements ContextResolver<JAXBContext> {
|
|||
SchedulerTypeInfo.class, NodeInfo.class, UserMetricsInfo.class,
|
||||
CapacitySchedulerInfo.class, ClusterMetricsInfo.class,
|
||||
SchedulerInfo.class, AppsInfo.class, NodesInfo.class,
|
||||
RemoteExceptionData.class};
|
||||
RemoteExceptionData.class, CapacitySchedulerQueueInfoList.class};
|
||||
|
||||
public JAXBContextResolver() throws Exception {
|
||||
this.types = new HashSet<Class>(Arrays.asList(cTypes));
|
||||
|
|
|
@ -18,8 +18,6 @@
|
|||
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.webapp.dao;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
|
@ -38,7 +36,7 @@ public class CapacitySchedulerInfo extends SchedulerInfo {
|
|||
protected float usedCapacity;
|
||||
protected float maxCapacity;
|
||||
protected String queueName;
|
||||
protected ArrayList<CapacitySchedulerQueueInfo> queues;
|
||||
protected CapacitySchedulerQueueInfoList queues;
|
||||
|
||||
@XmlTransient
|
||||
static final float EPSILON = 1e-8f;
|
||||
|
@ -74,22 +72,22 @@ public class CapacitySchedulerInfo extends SchedulerInfo {
|
|||
return this.queueName;
|
||||
}
|
||||
|
||||
public ArrayList<CapacitySchedulerQueueInfo> getSubQueues() {
|
||||
public CapacitySchedulerQueueInfoList getQueues() {
|
||||
return this.queues;
|
||||
}
|
||||
|
||||
protected ArrayList<CapacitySchedulerQueueInfo> getQueues(CSQueue parent) {
|
||||
protected CapacitySchedulerQueueInfoList getQueues(CSQueue parent) {
|
||||
CSQueue parentQueue = parent;
|
||||
ArrayList<CapacitySchedulerQueueInfo> queuesInfo = new ArrayList<CapacitySchedulerQueueInfo>();
|
||||
CapacitySchedulerQueueInfoList queuesInfo = new CapacitySchedulerQueueInfoList();
|
||||
for (CSQueue queue : parentQueue.getChildQueues()) {
|
||||
CapacitySchedulerQueueInfo info;
|
||||
if (queue instanceof LeafQueue) {
|
||||
info = new CapacitySchedulerLeafQueueInfo((LeafQueue)queue);
|
||||
} else {
|
||||
info = new CapacitySchedulerQueueInfo(queue);
|
||||
info.subQueues = getQueues(queue);
|
||||
info.queues = getQueues(queue);
|
||||
}
|
||||
queuesInfo.add(info);
|
||||
queuesInfo.addToQueueInfoList(info);
|
||||
}
|
||||
return queuesInfo;
|
||||
}
|
||||
|
|
|
@ -17,8 +17,6 @@
|
|||
*/
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.webapp.dao;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
|
@ -49,7 +47,7 @@ public class CapacitySchedulerQueueInfo {
|
|||
protected String usedResources;
|
||||
protected String queueName;
|
||||
protected QueueState state;
|
||||
protected ArrayList<CapacitySchedulerQueueInfo> subQueues;
|
||||
protected CapacitySchedulerQueueInfoList queues;
|
||||
|
||||
CapacitySchedulerQueueInfo() {
|
||||
};
|
||||
|
@ -117,8 +115,8 @@ public class CapacitySchedulerQueueInfo {
|
|||
return this.queuePath;
|
||||
}
|
||||
|
||||
public ArrayList<CapacitySchedulerQueueInfo> getSubQueues() {
|
||||
return this.subQueues;
|
||||
public CapacitySchedulerQueueInfoList getQueues() {
|
||||
return this.queues;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -0,0 +1,46 @@
|
|||
/**
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.webapp.dao;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
|
||||
@XmlRootElement
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
public class CapacitySchedulerQueueInfoList {
|
||||
protected ArrayList<CapacitySchedulerQueueInfo> queue;
|
||||
|
||||
public CapacitySchedulerQueueInfoList() {
|
||||
queue = new ArrayList<CapacitySchedulerQueueInfo>();
|
||||
}
|
||||
|
||||
public ArrayList<CapacitySchedulerQueueInfo> getQueueInfoList() {
|
||||
return this.queue;
|
||||
}
|
||||
|
||||
public boolean addToQueueInfoList(CapacitySchedulerQueueInfo e) {
|
||||
return this.queue.add(e);
|
||||
}
|
||||
|
||||
public CapacitySchedulerQueueInfo getQueueInfo(int i) {
|
||||
return this.queue.get(i);
|
||||
}
|
||||
}
|
|
@ -152,6 +152,11 @@ public class TestRMWebServicesCapacitySched extends JerseyTest {
|
|||
conf.setCapacity(B3, 20);
|
||||
conf.setUserLimitFactor(B3, 100.0f);
|
||||
|
||||
conf.setQueues(A1, new String[] {"a1a", "a1b"});
|
||||
final String A1A = A1 + ".a1a";
|
||||
conf.setCapacity(A1A, 85);
|
||||
final String A1B = A1 + ".a1b";
|
||||
conf.setCapacity(A1B, 15);
|
||||
}
|
||||
|
||||
@Before
|
||||
|
@ -232,12 +237,18 @@ public class TestRMWebServicesCapacitySched extends JerseyTest {
|
|||
WebServicesTestUtils.getXmlFloat(element, "maxCapacity"),
|
||||
WebServicesTestUtils.getXmlString(element, "queueName"));
|
||||
|
||||
NodeList queues = element.getElementsByTagName("queues");
|
||||
for (int j = 0; j < queues.getLength(); j++) {
|
||||
Element qElem = (Element) queues.item(j);
|
||||
String qName = WebServicesTestUtils.getXmlString(qElem, "queueName");
|
||||
String q = CapacitySchedulerConfiguration.ROOT + "." + qName;
|
||||
verifySubQueueXML(qElem, q, 100, 100);
|
||||
NodeList children = element.getChildNodes();
|
||||
for (int j = 0; j < children.getLength(); j++) {
|
||||
Element qElem = (Element) children.item(j);
|
||||
if(qElem.getTagName().equals("queues")) {
|
||||
NodeList qListInfos = qElem.getChildNodes();
|
||||
for (int k = 0; k < qListInfos.getLength(); k++) {
|
||||
Element qElem2 = (Element) qListInfos.item(k);
|
||||
String qName2 = WebServicesTestUtils.getXmlString(qElem2, "queueName");
|
||||
String q2 = CapacitySchedulerConfiguration.ROOT + "." + qName2;
|
||||
verifySubQueueXML(qElem2, q2, 100, 100);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -245,8 +256,18 @@ public class TestRMWebServicesCapacitySched extends JerseyTest {
|
|||
public void verifySubQueueXML(Element qElem, String q,
|
||||
float parentAbsCapacity, float parentAbsMaxCapacity)
|
||||
throws Exception {
|
||||
NodeList queues = qElem.getElementsByTagName("subQueues");
|
||||
QueueInfo qi = (queues != null) ? new QueueInfo() : new LeafQueueInfo();
|
||||
NodeList children = qElem.getChildNodes();
|
||||
boolean hasSubQueues = false;
|
||||
for (int j = 0; j < children.getLength(); j++) {
|
||||
Element qElem2 = (Element) children.item(j);
|
||||
if(qElem2.getTagName().equals("queues")) {
|
||||
NodeList qListInfos = qElem2.getChildNodes();
|
||||
if (qListInfos.getLength() > 0) {
|
||||
hasSubQueues = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
QueueInfo qi = (hasSubQueues) ? new QueueInfo() : new LeafQueueInfo();
|
||||
qi.capacity = WebServicesTestUtils.getXmlFloat(qElem, "capacity");
|
||||
qi.usedCapacity =
|
||||
WebServicesTestUtils.getXmlFloat(qElem, "usedCapacity");
|
||||
|
@ -263,14 +284,18 @@ public class TestRMWebServicesCapacitySched extends JerseyTest {
|
|||
qi.queueName = WebServicesTestUtils.getXmlString(qElem, "queueName");
|
||||
qi.state = WebServicesTestUtils.getXmlString(qElem, "state");
|
||||
verifySubQueueGeneric(q, qi, parentAbsCapacity, parentAbsMaxCapacity);
|
||||
|
||||
if (queues != null) {
|
||||
for (int j = 0; j < queues.getLength(); j++) {
|
||||
Element subqElem = (Element) queues.item(j);
|
||||
String qName = WebServicesTestUtils.getXmlString(subqElem, "queueName");
|
||||
String q2 = q + "." + qName;
|
||||
verifySubQueueXML(subqElem, q2,
|
||||
qi.absoluteCapacity, qi.absoluteMaxCapacity);
|
||||
if (hasSubQueues) {
|
||||
for (int j = 0; j < children.getLength(); j++) {
|
||||
Element qElem2 = (Element) children.item(j);
|
||||
if(qElem2.getTagName().equals("queues")) {
|
||||
NodeList qListInfos = qElem2.getChildNodes();
|
||||
for (int k = 0; k < qListInfos.getLength(); k++) {
|
||||
Element qElem3 = (Element) qListInfos.item(k);
|
||||
String qName3 = WebServicesTestUtils.getXmlString(qElem3, "queueName");
|
||||
String q3 = q + "." + qName3;
|
||||
verifySubQueueXML(qElem3, q3, qi.absoluteCapacity, qi.absoluteMaxCapacity);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
LeafQueueInfo lqi = (LeafQueueInfo) qi;
|
||||
|
@ -307,7 +332,7 @@ public class TestRMWebServicesCapacitySched extends JerseyTest {
|
|||
(float) info.getDouble("capacity"),
|
||||
(float) info.getDouble("maxCapacity"), info.getString("queueName"));
|
||||
|
||||
JSONArray arr = info.getJSONArray("queues");
|
||||
JSONArray arr = info.getJSONObject("queues").getJSONArray("queue");
|
||||
assertEquals("incorrect number of elements", 2, arr.length());
|
||||
|
||||
// test subqueues
|
||||
|
@ -333,7 +358,7 @@ public class TestRMWebServicesCapacitySched extends JerseyTest {
|
|||
throws JSONException, Exception {
|
||||
int numExpectedElements = 11;
|
||||
boolean isParentQueue = true;
|
||||
if (!info.has("subQueues")) {
|
||||
if (!info.has("queues")) {
|
||||
numExpectedElements = 20;
|
||||
isParentQueue = false;
|
||||
}
|
||||
|
@ -354,7 +379,7 @@ public class TestRMWebServicesCapacitySched extends JerseyTest {
|
|||
verifySubQueueGeneric(q, qi, parentAbsCapacity, parentAbsMaxCapacity);
|
||||
|
||||
if (isParentQueue) {
|
||||
JSONArray arr = info.getJSONArray("subQueues");
|
||||
JSONArray arr = info.getJSONObject("queues").getJSONArray("queue");
|
||||
// test subqueues
|
||||
for (int i = 0; i < arr.length(); i++) {
|
||||
JSONObject obj = arr.getJSONObject(i);
|
||||
|
|
|
@ -324,7 +324,7 @@ ResourceManager REST API's.
|
|||
| queues | array of queues(JSON)/zero or more queue objects(XML) | A collection of queue resources|
|
||||
*---------------+--------------+-------------------------------+
|
||||
|
||||
** Elements of the queues/subQueues object for a Parent queue
|
||||
** Elements of the queues object for a Parent queue
|
||||
|
||||
*---------------+--------------+-------------------------------+
|
||||
|| Item || Data Type || Description |
|
||||
|
@ -349,10 +349,10 @@ ResourceManager REST API's.
|
|||
*---------------+--------------+-------------------------------+
|
||||
| state | string of QueueState | The state of the queue |
|
||||
*---------------+--------------+-------------------------------+
|
||||
| subQueues | array of queues(JSON)/zero or more queue objects(XML) | A collection of sub-queue information|
|
||||
| queues | array of queues(JSON)/zero or more queue objects(XML) | A collection of sub-queue information|
|
||||
*---------------+--------------+-------------------------------+
|
||||
|
||||
** Elements of the queues/subQueues object for a Leaf queue - contains all elements in parent plus the following:
|
||||
** Elements of the queues object for a Leaf queue - contains all elements in parent plus the following:
|
||||
|
||||
*---------------+--------------+-------------------------------+
|
||||
|| Item || Data Type || Description |
|
||||
|
@ -406,12 +406,13 @@ ResourceManager REST API's.
|
|||
"queueName" : "root",
|
||||
"maxCapacity" : 100,
|
||||
"type" : "capacityScheduler",
|
||||
"queues" : [
|
||||
"queues" : {
|
||||
"queue" : [
|
||||
{
|
||||
"numPendingApplications" : 0,
|
||||
"queueName" : "default",
|
||||
"userLimitFactor" : 1,
|
||||
"maxApplications" : 7000,
|
||||
"maxApplications" : 1,
|
||||
"usedCapacity" : 0,
|
||||
"numContainers" : 0,
|
||||
"state" : "RUNNING",
|
||||
|
@ -427,42 +428,85 @@ ResourceManager REST API's.
|
|||
"maxActiveApplicationsPerUser" : 1,
|
||||
"capacity" : 70,
|
||||
"type" : "capacitySchedulerLeafQueueInfo",
|
||||
"maxApplicationsPerUser" : 7000
|
||||
"maxApplicationsPerUser" : 1
|
||||
},
|
||||
{
|
||||
"queueName" : "test",
|
||||
"absoluteUsedCapacity" : 0,
|
||||
"absoluteCapacity" : 20,
|
||||
"usedCapacity" : 0,
|
||||
"capacity" : 20,
|
||||
"subQueues" : [
|
||||
"state" : "RUNNING",
|
||||
"maxCapacity" : 100,
|
||||
"numApplications" : 0,
|
||||
"usedResources" : "memory: 0",
|
||||
"absoluteMaxCapacity" : 100,
|
||||
"queues" : {
|
||||
"queue" : [
|
||||
{
|
||||
"queueName" : "a1",
|
||||
"absoluteCapacity" : 12,
|
||||
"usedCapacity" : 0,
|
||||
"capacity" : 60.000004,
|
||||
"state" : "RUNNING",
|
||||
"maxCapacity" : 100,
|
||||
"numApplications" : 0,
|
||||
"usedResources" : "memory: 0",
|
||||
"absoluteMaxCapacity" : 100,
|
||||
"queues" : {
|
||||
"queue" : [
|
||||
{
|
||||
"numPendingApplications" : 0,
|
||||
"queueName" : "a1",
|
||||
"queueName" : "a11",
|
||||
"userLimitFactor" : 1,
|
||||
"maxApplications" : 1200,
|
||||
"maxApplications" : 0,
|
||||
"usedCapacity" : 0,
|
||||
"numContainers" : 0,
|
||||
"state" : "RUNNING",
|
||||
"maxCapacity" : 80,
|
||||
"maxCapacity" : 100,
|
||||
"numApplications" : 0,
|
||||
"usedResources" : "memory: 0",
|
||||
"absoluteMaxCapacity" : 16.000002,
|
||||
"absoluteMaxCapacity" : 100,
|
||||
"maxActiveApplications" : 1,
|
||||
"numActiveApplications" : 0,
|
||||
"absoluteUsedCapacity" : 0,
|
||||
"userLimit" : 100,
|
||||
"absoluteCapacity" : 12,
|
||||
"absoluteCapacity" : 10.200001,
|
||||
"maxActiveApplicationsPerUser" : 1,
|
||||
"capacity" : 60.000004,
|
||||
"capacity" : 85,
|
||||
"type" : "capacitySchedulerLeafQueueInfo",
|
||||
"maxApplicationsPerUser" : 1200
|
||||
"maxApplicationsPerUser" : 0
|
||||
},
|
||||
{
|
||||
"numPendingApplications" : 0,
|
||||
"queueName" : "a12",
|
||||
"userLimitFactor" : 1,
|
||||
"maxApplications" : 0,
|
||||
"usedCapacity" : 0,
|
||||
"numContainers" : 0,
|
||||
"state" : "RUNNING",
|
||||
"maxCapacity" : 100,
|
||||
"numApplications" : 0,
|
||||
"usedResources" : "memory: 0",
|
||||
"absoluteMaxCapacity" : 100,
|
||||
"maxActiveApplications" : 1,
|
||||
"numActiveApplications" : 0,
|
||||
"absoluteUsedCapacity" : 0,
|
||||
"userLimit" : 100,
|
||||
"absoluteCapacity" : 1.8000001,
|
||||
"maxActiveApplicationsPerUser" : 1,
|
||||
"capacity" : 15.000001,
|
||||
"type" : "capacitySchedulerLeafQueueInfo",
|
||||
"maxApplicationsPerUser" : 0
|
||||
}
|
||||
]
|
||||
},
|
||||
"absoluteUsedCapacity" : 0
|
||||
},
|
||||
{
|
||||
"numPendingApplications" : 0,
|
||||
"queueName" : "a2",
|
||||
"userLimitFactor" : 1,
|
||||
"maxApplications" : 800,
|
||||
"maxApplications" : 0,
|
||||
"usedCapacity" : 0,
|
||||
"numContainers" : 0,
|
||||
"state" : "RUNNING",
|
||||
|
@ -478,78 +522,58 @@ ResourceManager REST API's.
|
|||
"maxActiveApplicationsPerUser" : 1,
|
||||
"capacity" : 40,
|
||||
"type" : "capacitySchedulerLeafQueueInfo",
|
||||
"maxApplicationsPerUser" : 800
|
||||
"maxApplicationsPerUser" : 0
|
||||
}
|
||||
],
|
||||
"state" : "RUNNING",
|
||||
"maxCapacity" : 80,
|
||||
"numApplications" : 0,
|
||||
"usedResources" : "memory: 0",
|
||||
"absoluteMaxCapacity" : 80
|
||||
]
|
||||
},
|
||||
"absoluteUsedCapacity" : 0
|
||||
},
|
||||
{
|
||||
"queueName" : "test2",
|
||||
"absoluteUsedCapacity" : 0,
|
||||
"absoluteCapacity" : 10,
|
||||
"usedCapacity" : 0,
|
||||
"capacity" : 10,
|
||||
"subQueues" : [
|
||||
{
|
||||
"numPendingApplications" : 0,
|
||||
"queueName" : "a5",
|
||||
"userLimitFactor" : 1,
|
||||
"maxApplications" : 500,
|
||||
"usedCapacity" : 0,
|
||||
"numContainers" : 0,
|
||||
"state" : "RUNNING",
|
||||
"maxCapacity" : 100,
|
||||
"maxCapacity" : 15.000001,
|
||||
"numApplications" : 0,
|
||||
"usedResources" : "memory: 0",
|
||||
"absoluteMaxCapacity" : 100,
|
||||
"maxActiveApplications" : 1,
|
||||
"numActiveApplications" : 0,
|
||||
"absoluteUsedCapacity" : 0,
|
||||
"userLimit" : 100,
|
||||
"absoluteCapacity" : 5,
|
||||
"maxActiveApplicationsPerUser" : 1,
|
||||
"capacity" : 50,
|
||||
"type" : "capacitySchedulerLeafQueueInfo",
|
||||
"maxApplicationsPerUser" : 500
|
||||
},
|
||||
"absoluteMaxCapacity" : 15.000001,
|
||||
"queues" : {
|
||||
"queue" : [
|
||||
{
|
||||
"numPendingApplications" : 0,
|
||||
"queueName" : "a3",
|
||||
"userLimitFactor" : 1,
|
||||
"maxApplications" : 400,
|
||||
"maxApplications" : 0,
|
||||
"usedCapacity" : 0,
|
||||
"numContainers" : 0,
|
||||
"state" : "RUNNING",
|
||||
"maxCapacity" : 100,
|
||||
"numApplications" : 0,
|
||||
"usedResources" : "memory: 0",
|
||||
"absoluteMaxCapacity" : 100,
|
||||
"absoluteMaxCapacity" : 15.000001,
|
||||
"maxActiveApplications" : 1,
|
||||
"numActiveApplications" : 0,
|
||||
"absoluteUsedCapacity" : 0,
|
||||
"userLimit" : 100,
|
||||
"absoluteCapacity" : 4.0000005,
|
||||
"absoluteCapacity" : 9,
|
||||
"maxActiveApplicationsPerUser" : 1,
|
||||
"capacity" : 40,
|
||||
"capacity" : 90,
|
||||
"type" : "capacitySchedulerLeafQueueInfo",
|
||||
"maxApplicationsPerUser" : 400
|
||||
"maxApplicationsPerUser" : 0
|
||||
},
|
||||
{
|
||||
"numPendingApplications" : 0,
|
||||
"queueName" : "a4",
|
||||
"userLimitFactor" : 1,
|
||||
"maxApplications" : 100,
|
||||
"maxApplications" : 0,
|
||||
"usedCapacity" : 0,
|
||||
"numContainers" : 0,
|
||||
"state" : "RUNNING",
|
||||
"maxCapacity" : 100,
|
||||
"numApplications" : 0,
|
||||
"usedResources" : "memory: 0",
|
||||
"absoluteMaxCapacity" : 100,
|
||||
"absoluteMaxCapacity" : 15.000001,
|
||||
"maxActiveApplications" : 1,
|
||||
"numActiveApplications" : 0,
|
||||
"absoluteUsedCapacity" : 0,
|
||||
|
@ -558,16 +582,14 @@ ResourceManager REST API's.
|
|||
"maxActiveApplicationsPerUser" : 1,
|
||||
"capacity" : 10,
|
||||
"type" : "capacitySchedulerLeafQueueInfo",
|
||||
"maxApplicationsPerUser" : 100
|
||||
"maxApplicationsPerUser" : 0
|
||||
}
|
||||
],
|
||||
"state" : "RUNNING",
|
||||
"maxCapacity" : 15.000001,
|
||||
"numApplications" : 0,
|
||||
"usedResources" : "memory: 0",
|
||||
"absoluteMaxCapacity" : 15.000001
|
||||
]
|
||||
},
|
||||
"absoluteUsedCapacity" : 0
|
||||
}
|
||||
],
|
||||
]
|
||||
},
|
||||
"usedCapacity" : 0,
|
||||
"capacity" : 100
|
||||
}
|
||||
|
@ -575,7 +597,7 @@ ResourceManager REST API's.
|
|||
}
|
||||
+---+
|
||||
|
||||
<<JSON response>>
|
||||
<<XML response>>
|
||||
|
||||
HTTP Request:
|
||||
|
||||
|
@ -603,7 +625,8 @@ ResourceManager REST API's.
|
|||
<usedCapacity>0.0</usedCapacity>
|
||||
<maxCapacity>100.0</maxCapacity>
|
||||
<queueName>root</queueName>
|
||||
<queues xsi:type="capacitySchedulerLeafQueueInfo">
|
||||
<queues>
|
||||
<queue xsi:type="capacitySchedulerLeafQueueInfo">
|
||||
<capacity>70.0</capacity>
|
||||
<usedCapacity>0.0</usedCapacity>
|
||||
<maxCapacity>90.0</maxCapacity>
|
||||
|
@ -617,46 +640,82 @@ ResourceManager REST API's.
|
|||
<numActiveApplications>0</numActiveApplications>
|
||||
<numPendingApplications>0</numPendingApplications>
|
||||
<numContainers>0</numContainers>
|
||||
<maxApplications>7000</maxApplications>
|
||||
<maxApplicationsPerUser>7000</maxApplicationsPerUser>
|
||||
<maxApplications>1</maxApplications>
|
||||
<maxApplicationsPerUser>1</maxApplicationsPerUser>
|
||||
<maxActiveApplications>1</maxActiveApplications>
|
||||
<maxActiveApplicationsPerUser>1</maxActiveApplicationsPerUser>
|
||||
<userLimit>100</userLimit>
|
||||
<userLimitFactor>1.0</userLimitFactor>
|
||||
</queues>
|
||||
<queues>
|
||||
</queue>
|
||||
<queue>
|
||||
<capacity>20.0</capacity>
|
||||
<usedCapacity>0.0</usedCapacity>
|
||||
<maxCapacity>80.0</maxCapacity>
|
||||
<maxCapacity>100.0</maxCapacity>
|
||||
<absoluteCapacity>20.0</absoluteCapacity>
|
||||
<absoluteMaxCapacity>80.0</absoluteMaxCapacity>
|
||||
<absoluteMaxCapacity>100.0</absoluteMaxCapacity>
|
||||
<absoluteUsedCapacity>0.0</absoluteUsedCapacity>
|
||||
<numApplications>0</numApplications>
|
||||
<usedResources>memory: 0</usedResources>
|
||||
<queueName>test</queueName>
|
||||
<state>RUNNING</state>
|
||||
<subQueues xsi:type="capacitySchedulerLeafQueueInfo">
|
||||
<queues>
|
||||
<queue>
|
||||
<capacity>60.000004</capacity>
|
||||
<usedCapacity>0.0</usedCapacity>
|
||||
<maxCapacity>80.0</maxCapacity>
|
||||
<maxCapacity>100.0</maxCapacity>
|
||||
<absoluteCapacity>12.0</absoluteCapacity>
|
||||
<absoluteMaxCapacity>16.000002</absoluteMaxCapacity>
|
||||
<absoluteMaxCapacity>100.0</absoluteMaxCapacity>
|
||||
<absoluteUsedCapacity>0.0</absoluteUsedCapacity>
|
||||
<numApplications>0</numApplications>
|
||||
<usedResources>memory: 0</usedResources>
|
||||
<queueName>a1</queueName>
|
||||
<state>RUNNING</state>
|
||||
<queues>
|
||||
<queue xsi:type="capacitySchedulerLeafQueueInfo">
|
||||
<capacity>85.0</capacity>
|
||||
<usedCapacity>0.0</usedCapacity>
|
||||
<maxCapacity>100.0</maxCapacity>
|
||||
<absoluteCapacity>10.200001</absoluteCapacity>
|
||||
<absoluteMaxCapacity>100.0</absoluteMaxCapacity>
|
||||
<absoluteUsedCapacity>0.0</absoluteUsedCapacity>
|
||||
<numApplications>0</numApplications>
|
||||
<usedResources>memory: 0</usedResources>
|
||||
<queueName>a11</queueName>
|
||||
<state>RUNNING</state>
|
||||
<numActiveApplications>0</numActiveApplications>
|
||||
<numPendingApplications>0</numPendingApplications>
|
||||
<numContainers>0</numContainers>
|
||||
<maxApplications>1200</maxApplications>
|
||||
<maxApplicationsPerUser>1200</maxApplicationsPerUser>
|
||||
<maxApplications>0</maxApplications>
|
||||
<maxApplicationsPerUser>0</maxApplicationsPerUser>
|
||||
<maxActiveApplications>1</maxActiveApplications>
|
||||
<maxActiveApplicationsPerUser>1</maxActiveApplicationsPerUser>
|
||||
<userLimit>100</userLimit>
|
||||
<userLimitFactor>1.0</userLimitFactor>
|
||||
</subQueues>
|
||||
<subQueues xsi:type="capacitySchedulerLeafQueueInfo">
|
||||
</queue>
|
||||
<queue xsi:type="capacitySchedulerLeafQueueInfo">
|
||||
<capacity>15.000001</capacity>
|
||||
<usedCapacity>0.0</usedCapacity>
|
||||
<maxCapacity>100.0</maxCapacity>
|
||||
<absoluteCapacity>1.8000001</absoluteCapacity>
|
||||
<absoluteMaxCapacity>100.0</absoluteMaxCapacity>
|
||||
<absoluteUsedCapacity>0.0</absoluteUsedCapacity>
|
||||
<numApplications>0</numApplications>
|
||||
<usedResources>memory: 0</usedResources>
|
||||
<queueName>a12</queueName>
|
||||
<state>RUNNING</state>
|
||||
<numActiveApplications>0</numActiveApplications>
|
||||
<numPendingApplications>0</numPendingApplications>
|
||||
<numContainers>0</numContainers>
|
||||
<maxApplications>0</maxApplications>
|
||||
<maxApplicationsPerUser>0</maxApplicationsPerUser>
|
||||
<maxActiveApplications>1</maxActiveApplications>
|
||||
<maxActiveApplicationsPerUser>1</maxActiveApplicationsPerUser>
|
||||
<userLimit>100</userLimit>
|
||||
<userLimitFactor>1.0</userLimitFactor>
|
||||
</queue>
|
||||
</queues>
|
||||
</queue>
|
||||
<queue xsi:type="capacitySchedulerLeafQueueInfo">
|
||||
<capacity>40.0</capacity>
|
||||
<usedCapacity>0.0</usedCapacity>
|
||||
<maxCapacity>100.0</maxCapacity>
|
||||
|
@ -670,15 +729,16 @@ ResourceManager REST API's.
|
|||
<numActiveApplications>0</numActiveApplications>
|
||||
<numPendingApplications>0</numPendingApplications>
|
||||
<numContainers>0</numContainers>
|
||||
<maxApplications>800</maxApplications>
|
||||
<maxApplicationsPerUser>800</maxApplicationsPerUser>
|
||||
<maxApplications>0</maxApplications>
|
||||
<maxApplicationsPerUser>0</maxApplicationsPerUser>
|
||||
<maxActiveApplications>1</maxActiveApplications>
|
||||
<maxActiveApplicationsPerUser>1</maxActiveApplicationsPerUser>
|
||||
<userLimit>100</userLimit>
|
||||
<userLimitFactor>1.0</userLimitFactor>
|
||||
</subQueues>
|
||||
</queue>
|
||||
</queues>
|
||||
<queues>
|
||||
</queue>
|
||||
<queue>
|
||||
<capacity>10.0</capacity>
|
||||
<usedCapacity>0.0</usedCapacity>
|
||||
<maxCapacity>15.000001</maxCapacity>
|
||||
|
@ -689,33 +749,13 @@ ResourceManager REST API's.
|
|||
<usedResources>memory: 0</usedResources>
|
||||
<queueName>test2</queueName>
|
||||
<state>RUNNING</state>
|
||||
<subQueues xsi:type="capacitySchedulerLeafQueueInfo">
|
||||
<capacity>50.0</capacity>
|
||||
<queues>
|
||||
<queue xsi:type="capacitySchedulerLeafQueueInfo">
|
||||
<capacity>90.0</capacity>
|
||||
<usedCapacity>0.0</usedCapacity>
|
||||
<maxCapacity>100.0</maxCapacity>
|
||||
<absoluteCapacity>5.0</absoluteCapacity>
|
||||
<absoluteMaxCapacity>100.0</absoluteMaxCapacity>
|
||||
<absoluteUsedCapacity>0.0</absoluteUsedCapacity>
|
||||
<numApplications>0</numApplications>
|
||||
<usedResources>memory: 0</usedResources>
|
||||
<queueName>A4</queueName>
|
||||
<state>RUNNING</state>
|
||||
<numActiveApplications>0</numActiveApplications>
|
||||
<numPendingApplications>0</numPendingApplications>
|
||||
<numContainers>0</numContainers>
|
||||
<maxApplications>500</maxApplications>
|
||||
<maxApplicationsPerUser>500</maxApplicationsPerUser>
|
||||
<maxActiveApplications>1</maxActiveApplications>
|
||||
<maxActiveApplicationsPerUser>1</maxActiveApplicationsPerUser>
|
||||
<userLimit>100</userLimit>
|
||||
<userLimitFactor>1.0</userLimitFactor>
|
||||
</subQueues>
|
||||
<subQueues xsi:type="capacitySchedulerLeafQueueInfo">
|
||||
<capacity>40.0</capacity>
|
||||
<usedCapacity>0.0</usedCapacity>
|
||||
<maxCapacity>100.0</maxCapacity>
|
||||
<absoluteCapacity>4.0000005</absoluteCapacity>
|
||||
<absoluteMaxCapacity>100.0</absoluteMaxCapacity>
|
||||
<absoluteCapacity>9.0</absoluteCapacity>
|
||||
<absoluteMaxCapacity>15.000001</absoluteMaxCapacity>
|
||||
<absoluteUsedCapacity>0.0</absoluteUsedCapacity>
|
||||
<numApplications>0</numApplications>
|
||||
<usedResources>memory: 0</usedResources>
|
||||
|
@ -724,19 +764,19 @@ ResourceManager REST API's.
|
|||
<numActiveApplications>0</numActiveApplications>
|
||||
<numPendingApplications>0</numPendingApplications>
|
||||
<numContainers>0</numContainers>
|
||||
<maxApplications>400</maxApplications>
|
||||
<maxApplicationsPerUser>400</maxApplicationsPerUser>
|
||||
<maxApplications>0</maxApplications>
|
||||
<maxApplicationsPerUser>0</maxApplicationsPerUser>
|
||||
<maxActiveApplications>1</maxActiveApplications>
|
||||
<maxActiveApplicationsPerUser>1</maxActiveApplicationsPerUser>
|
||||
<userLimit>100</userLimit>
|
||||
<userLimitFactor>1.0</userLimitFactor>
|
||||
</subQueues>
|
||||
<subQueues xsi:type="capacitySchedulerLeafQueueInfo">
|
||||
</queue>
|
||||
<queue xsi:type="capacitySchedulerLeafQueueInfo">
|
||||
<capacity>10.0</capacity>
|
||||
<usedCapacity>0.0</usedCapacity>
|
||||
<maxCapacity>100.0</maxCapacity>
|
||||
<absoluteCapacity>1.0000001</absoluteCapacity>
|
||||
<absoluteMaxCapacity>100.0</absoluteMaxCapacity>
|
||||
<absoluteMaxCapacity>15.000001</absoluteMaxCapacity>
|
||||
<absoluteUsedCapacity>0.0</absoluteUsedCapacity>
|
||||
<numApplications>0</numApplications>
|
||||
<usedResources>memory: 0</usedResources>
|
||||
|
@ -745,13 +785,15 @@ ResourceManager REST API's.
|
|||
<numActiveApplications>0</numActiveApplications>
|
||||
<numPendingApplications>0</numPendingApplications>
|
||||
<numContainers>0</numContainers>
|
||||
<maxApplications>100</maxApplications>
|
||||
<maxApplicationsPerUser>100</maxApplicationsPerUser>
|
||||
<maxApplications>0</maxApplications>
|
||||
<maxApplicationsPerUser>0</maxApplicationsPerUser>
|
||||
<maxActiveApplications>1</maxActiveApplications>
|
||||
<maxActiveApplicationsPerUser>1</maxActiveApplicationsPerUser>
|
||||
<userLimit>100</userLimit>
|
||||
<userLimitFactor>1.0</userLimitFactor>
|
||||
</subQueues>
|
||||
</queue>
|
||||
</queues>
|
||||
</queue>
|
||||
</queues>
|
||||
</schedulerInfo>
|
||||
</scheduler>
|
||||
|
|
Loading…
Reference in New Issue