org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.QueueCapacities类的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(13.2k)|赞(0)|评价(0)|浏览(196)

本文整理了Java中org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.QueueCapacities类的一些代码示例,展示了QueueCapacities类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。QueueCapacities类的具体详情如下:
包路径:org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.QueueCapacities
类名称:QueueCapacities

QueueCapacities介绍

暂无

代码示例

代码示例来源:origin: com.github.jiayuhan-it/hadoop-yarn-server-resourcemanager

/**
 * Check sanity of capacities:
 * - capacity <= maxCapacity
 * - absCapacity <= absMaximumCapacity
 */
private static void capacitiesSanityCheck(String queueName,
  QueueCapacities queueCapacities) {
 for (String label : queueCapacities.getExistingNodeLabels()) {
  float capacity = queueCapacities.getCapacity(label);
  float maximumCapacity = queueCapacities.getMaximumCapacity(label);
  if (capacity > maximumCapacity) {
   throw new IllegalArgumentException("Illegal queue capacity setting, "
     + "(capacity=" + capacity + ") > (maximum-capacity="
     + maximumCapacity + "). When label=[" + label + "]");
  }
    // Actually, this may not needed since we have verified capacity <=
  // maximumCapacity. And the way we compute absolute capacity (abs(x) =
  // cap(x) * cap(x.parent) * ...) is a monotone increasing function. But
  // just keep it here to make sure our compute abs capacity method works
  // correctly. 
  float absCapacity = queueCapacities.getAbsoluteCapacity(label);
  float absMaxCapacity = queueCapacities.getAbsoluteMaximumCapacity(label);
  if (absCapacity > absMaxCapacity) {
   throw new IllegalArgumentException("Illegal queue capacity setting, "
     + "(abs-capacity=" + absCapacity + ") > (abs-maximum-capacity="
     + absMaxCapacity + "). When label=[" + label + "]");
  }
 }
}

代码示例来源:origin: org.apache.hadoop/hadoop-yarn-server-resourcemanager

@Override
public float getAbsoluteUsedCapacity() {
 return queueCapacities.getAbsoluteUsedCapacity();
}

代码示例来源:origin: com.github.jiayuhan-it/hadoop-yarn-server-resourcemanager

@Override
public synchronized float getUsedCapacity() {
 return queueCapacities.getUsedCapacity();
}

代码示例来源:origin: ch.cern.hadoop/hadoop-yarn-server-resourcemanager

private static void updateAbsoluteCapacitiesByNodeLabels(
  QueueCapacities queueCapacities, QueueCapacities parentQueueCapacities) {
 for (String label : queueCapacities.getExistingNodeLabels()) {
  float capacity = queueCapacities.getCapacity(label);
  if (capacity > 0f) {
   queueCapacities.setAbsoluteCapacity(
     label,
     capacity
       * (parentQueueCapacities == null ? 1 : parentQueueCapacities
         .getAbsoluteCapacity(label)));
  }
  float maxCapacity = queueCapacities.getMaximumCapacity(label);
  if (maxCapacity > 0f) {
   queueCapacities.setAbsoluteMaximumCapacity(
     label,
     maxCapacity
       * (parentQueueCapacities == null ? 1 : parentQueueCapacities
         .getAbsoluteMaximumCapacity(label)));
  }
 }
}

代码示例来源:origin: org.apache.hadoop/hadoop-yarn-server-resourcemanager

/**
 * Check sanity of capacities:
 * - capacity <= maxCapacity
 * - absCapacity <= absMaximumCapacity
 */
private static void capacitiesSanityCheck(String queueName,
  QueueCapacities queueCapacities) {
 for (String label : queueCapacities.getExistingNodeLabels()) {
  // The only thing we should care about is absolute capacity <=
  // absolute max capacity otherwise the absolute max capacity is
  // no longer an absolute maximum.
  float absCapacity = queueCapacities.getAbsoluteCapacity(label);
  float absMaxCapacity = queueCapacities.getAbsoluteMaximumCapacity(label);
  if (absCapacity > absMaxCapacity) {
   throw new IllegalArgumentException("Illegal queue capacity setting, "
     + "(abs-capacity=" + absCapacity + ") > (abs-maximum-capacity="
     + absMaxCapacity + "). When label=[" + label + "]");
  }
 }
}

代码示例来源:origin: org.apache.hadoop/hadoop-yarn-server-resourcemanager

private void mergeCapacities(QueueCapacities capacities) {
 for ( String nodeLabel : capacities.getExistingNodeLabels()) {
  queueCapacities.setCapacity(nodeLabel,
    capacities.getCapacity(nodeLabel));
  queueCapacities.setAbsoluteCapacity(nodeLabel, capacities
    .getAbsoluteCapacity(nodeLabel));
  queueCapacities.setMaximumCapacity(nodeLabel, capacities
    .getMaximumCapacity(nodeLabel));
  queueCapacities.setAbsoluteMaximumCapacity(nodeLabel, capacities
    .getAbsoluteMaximumCapacity(nodeLabel));
  Resource resourceByLabel = labelManager.getResourceByLabel(nodeLabel,
    csContext.getClusterResource());
  getQueueResourceQuotas().setEffectiveMinResource(nodeLabel,
    Resources.multiply(resourceByLabel,
      queueCapacities.getAbsoluteCapacity(nodeLabel)));
  getQueueResourceQuotas().setEffectiveMaxResource(nodeLabel,
    Resources.multiply(resourceByLabel, queueCapacities
      .getAbsoluteMaximumCapacity(nodeLabel)));
 }
}

代码示例来源:origin: org.apache.hadoop/hadoop-yarn-server-resourcemanager

float absMaxCapacity;
float maxAMLimitPercentage;
for (String partitionName : capacities.getExistingNodeLabels()) {
 usedCapacity = capacities.getUsedCapacity(partitionName) * 100;
 capacity = capacities.getCapacity(partitionName) * 100;
 maxCapacity = capacities.getMaximumCapacity(partitionName);
 absCapacity = CapacitySchedulerQueueInfo
   .cap(capacities.getAbsoluteCapacity(partitionName), 0f, 1f) * 100;
 absUsedCapacity = CapacitySchedulerQueueInfo
   .cap(capacities.getAbsoluteUsedCapacity(partitionName), 0f, 1f) * 100;
 absMaxCapacity = CapacitySchedulerQueueInfo.cap(
   capacities.getAbsoluteMaximumCapacity(partitionName), 0f, 1f) * 100;
 maxAMLimitPercentage = capacities
   .getMaxAMResourcePercentage(partitionName) * 100;
 if (maxCapacity < CapacitySchedulerQueueInfo.EPSILON || maxCapacity > 1f)
  maxCapacity = 1f;

代码示例来源:origin: ch.cern.hadoop/hadoop-yarn-server-resourcemanager

/**
 * Set maximum capacity - used only for testing.
 * @param maximumCapacity new max capacity
 */
synchronized void setMaxCapacity(float maximumCapacity) {
 // Sanity check
 CSQueueUtils.checkMaxCapacity(getQueueName(),
   queueCapacities.getCapacity(), maximumCapacity);
 float absMaxCapacity =
   CSQueueUtils.computeAbsoluteMaximumCapacity(maximumCapacity, parent);
 CSQueueUtils.checkAbsoluteCapacity(getQueueName(),
   queueCapacities.getAbsoluteCapacity(),
   absMaxCapacity);
 
 queueCapacities.setMaximumCapacity(maximumCapacity);
 queueCapacities.setAbsoluteMaximumCapacity(absMaxCapacity);
}

代码示例来源:origin: org.apache.hadoop/hadoop-yarn-server-resourcemanager

QueueCapacities qc = new QueueCapacities(0 == myLevel);
ResourceUsage ru = new ResourceUsage();
QueueResourceQuotas qr  = new QueueResourceQuotas();
   parseResourceFromString(values[0].trim())) + epsilon;
 Resource pending = parseResourceFromString(values[3].trim());
 qc.setAbsoluteCapacity(partitionName, absGuaranteed);
 qc.setAbsoluteMaximumCapacity(partitionName, absMax);
 qc.setAbsoluteUsedCapacity(partitionName, absUsed);
 qc.setUsedCapacity(partitionName, used);
 qr.setEffectiveMaxResource(parseResourceFromString(values[1].trim()));
 qr.setEffectiveMinResource(parseResourceFromString(values[0].trim()));

代码示例来源:origin: com.github.jiayuhan-it/hadoop-yarn-server-resourcemanager

public CapacitySchedulerInfo(final CSQueue parent, final NodeLabel nodeLabel) {
 String label = nodeLabel.getLabelName();
 QueueCapacities parentQueueCapacities = parent.getQueueCapacities();
 this.queueName = parent.getQueueName();
 this.usedCapacity = parent.getUsedCapacity(label) * 100;
 this.capacity = parentQueueCapacities.getCapacity(label) * 100;
 float max = parentQueueCapacities.getMaximumCapacity(label);
 if (max < EPSILON || max > 1f)
  max = 1f;
 this.maxCapacity = max * 100;
 queues = getQueues(parent, nodeLabel);
}

代码示例来源:origin: org.apache.hadoop/hadoop-yarn-server-resourcemanager

Assert.assertEquals(0.5, qA2.getQueueCapacities().getCapacity("red"), DELTA);
Assert.assertEquals(0.07, qA2.getAbsoluteCapacity(), DELTA);
Assert.assertEquals(0.25, qA2.getQueueCapacities().getAbsoluteCapacity("red"), DELTA);
Assert.assertEquals(0.1275, qA2.getAbsoluteMaximumCapacity(), DELTA);
Assert.assertEquals(0.3, qA2.getQueueCapacities().getAbsoluteMaximumCapacity("red"), DELTA);
Assert.assertEquals(0.125, qB3.getQueueCapacities().getAbsoluteCapacity("red"), DELTA);
Assert.assertEquals(0.35, qB3.getAbsoluteMaximumCapacity(), DELTA);
Assert.assertEquals(1, qB3.getQueueCapacities().getAbsoluteMaximumCapacity("red"), DELTA);

代码示例来源:origin: org.apache.hadoop/hadoop-yarn-server-resourcemanager

if (Float.compare(queueCapacities.getAbsoluteCapacity
     (nodePartition), 0f) == 0
   && childQueue instanceof AutoCreatedLeafQueue) {
    .getQueueCapacities();
  queueGuaranteedResource = Resources.multiply(totalPartitionResource,
    leafQueueTemplateCapacities.getAbsoluteCapacity
      (nodePartition));
  .setAbsoluteUsedCapacity(nodePartition, absoluteUsedCapacity);
queueCapacities.setUsedCapacity(nodePartition, usedCapacity);
queueCapacities.setReservedCapacity(nodePartition, reservedCapacity);
queueCapacities
  .setAbsoluteReservedCapacity(nodePartition, absoluteReservedCapacity);
  queueCapacities.getUsedCapacity(RMNodeLabelsManager.NO_LABEL));
queueMetrics.setAbsoluteUsedCapacity(nodePartition,
  queueCapacities.getAbsoluteUsedCapacity(
    RMNodeLabelsManager.NO_LABEL));

代码示例来源:origin: ch.cern.hadoop/hadoop-yarn-server-resourcemanager

public String toString() {
 return queueName + ": " +
   "numChildQueue= " + childQueues.size() + ", " + 
   "capacity=" + queueCapacities.getCapacity() + ", " +  
   "absoluteCapacity=" + queueCapacities.getAbsoluteCapacity() + ", " +
   "usedResources=" + queueUsage.getUsed() + 
   "usedCapacity=" + getUsedCapacity() + ", " + 
   "numApps=" + getNumApplications() + ", " + 
   "numContainers=" + getNumContainers();
}

代码示例来源:origin: org.apache.hadoop/hadoop-yarn-server-resourcemanager

diagnosticMessage.append("Queue's Absolute capacity = ");
diagnosticMessage.append(
  queueCapacities.getAbsoluteCapacity(appAMNodePartitionName) * 100);
diagnosticMessage.append(" % ; ");
diagnosticMessage.append("Queue's Absolute used capacity = ");
diagnosticMessage.append(
  queueCapacities.getAbsoluteUsedCapacity(appAMNodePartitionName) * 100);
diagnosticMessage.append(" % ; ");
diagnosticMessage.append("Queue's Absolute max capacity = ");
diagnosticMessage.append(
  queueCapacities.getAbsoluteMaximumCapacity(appAMNodePartitionName)
    * 100);
diagnosticMessage.append(" % ; ");

代码示例来源:origin: org.apache.hadoop/hadoop-yarn-server-resourcemanager

@Override
public float getAbsoluteCapacity() {
 return queueCapacities.getAbsoluteCapacity();
}

代码示例来源:origin: org.apache.hadoop/hadoop-yarn-server-resourcemanager

float q1AbsCapacity = q1.getQueueCapacities().getAbsoluteCapacity(p);
float q2AbsCapacity = q2.getQueueCapacities().getAbsoluteCapacity(p);
 float used1 = q1.getQueueCapacities().getAbsoluteUsedCapacity(p);
 float used2 = q2.getQueueCapacities().getAbsoluteUsedCapacity(p);
 float used1 = q1.getQueueCapacities().getUsedCapacity(p);
 float used2 = q2.getQueueCapacities().getUsedCapacity(p);

代码示例来源:origin: ch.cern.hadoop/hadoop-yarn-server-resourcemanager

@Override
public float getAbsoluteMaximumCapacity() {
 return queueCapacities.getAbsoluteMaximumCapacity();
}

代码示例来源:origin: org.apache.hadoop/hadoop-yarn-server-resourcemanager

private List<CSQueue> mockCSQueues(String[] queueNames, int[] priorities,
  float[] utilizations, float[] absCapacities, String partition) {
 // sanity check
 assert queueNames != null && priorities != null && utilizations != null
   && queueNames.length > 0 && queueNames.length == priorities.length
   && priorities.length == utilizations.length;
 List<CSQueue> list = new ArrayList<>();
 for (int i = 0; i < queueNames.length; i++) {
  CSQueue q = mock(CSQueue.class);
  when(q.getQueueName()).thenReturn(queueNames[i]);
  QueueCapacities qc = new QueueCapacities(false);
  qc.setAbsoluteCapacity(partition, absCapacities[i]);
  qc.setUsedCapacity(partition, utilizations[i]);
  when(q.getQueueCapacities()).thenReturn(qc);
  when(q.getPriority()).thenReturn(Priority.newInstance(priorities[i]));
  QueueResourceQuotas qr = new QueueResourceQuotas();
  when(q.getQueueResourceQuotas()).thenReturn(qr);
  list.add(q);
 }
 return list;
}

代码示例来源:origin: org.apache.hadoop/hadoop-yarn-server-resourcemanager

queueResourceQuotas.setEffectiveMinResource(label, resourceByLabel);
queueResourceQuotas.setEffectiveMaxResource(label, resourceByLabel);
queueCapacities.setAbsoluteCapacity(label, 1.0f);
 childQueue.getQueueResourceQuotas().setEffectiveMinResource(label,
   Resources.multiply(resourceByLabel,
     childQueue.getQueueCapacities().getAbsoluteCapacity(label)));
 childQueue.getQueueResourceQuotas().setEffectiveMaxResource(label,
   Resources.multiply(resourceByLabel, childQueue.getQueueCapacities()
     .getAbsoluteMaximumCapacity(label)));

代码示例来源:origin: org.apache.hadoop/hadoop-yarn-server-resourcemanager

public AbstractCSQueue(CapacitySchedulerContext cs,
  CapacitySchedulerConfiguration configuration, String queueName,
  CSQueue parent, CSQueue old) {
 this.labelManager = cs.getRMContext().getNodeLabelManager();
 this.parent = parent;
 this.queueName = queueName;
 this.queuePath = ((parent == null) ? "" : (parent.getQueuePath() + "."))
   + this.queueName;
 this.resourceCalculator = cs.getResourceCalculator();
 this.activitiesManager = cs.getActivitiesManager();
 // must be called after parent and queueName is set
 this.metrics = old != null ?
   (CSQueueMetrics) old.getMetrics() :
   CSQueueMetrics.forQueue(getQueuePath(), parent,
     cs.getConfiguration().getEnableUserMetrics(), cs.getConf());
 this.csContext = cs;
 this.minimumAllocation = csContext.getMinimumResourceCapability();
 // initialize ResourceUsage
 queueUsage = new ResourceUsage();
 queueEntity = new PrivilegedEntity(EntityType.QUEUE, getQueuePath());
 // initialize QueueCapacities
 queueCapacities = new QueueCapacities(parent == null);
 // initialize queueResourceQuotas
 queueResourceQuotas = new QueueResourceQuotas();
 ReentrantReadWriteLock lock = new ReentrantReadWriteLock();
 readLock = lock.readLock();
 writeLock = lock.writeLock();
}

相关文章