org.apache.hadoop.yarn.api.records.Resource.getVirtualCores()方法的使用及代码示例

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

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

Resource.getVirtualCores介绍

[英]Get number of virtual cpu cores of the resource. Virtual cores are a unit for expressing CPU parallelism. A node's capacity should be configured with virtual cores equal to its number of physical cores. A container should be requested with the number of cores it can saturate, i.e. the average number of threads it expects to have runnable at a time.
[中]获取资源的虚拟cpu核心数。虚拟核是表示CPU并行性的单元。一个节点的容量应该配置与物理核数量相等的虚拟核。请求一个容器时,应该包含它可以饱和的内核数,即它希望一次可以运行的线程的平均数。

代码示例

代码示例来源:origin: apache/drill

@Override
public void limitContainerSize(Resource maxResource) throws AMException {
 if (taskSpec.containerSpec.memoryMb > maxResource.getMemory()) {
  LOG.warn(taskSpec.name + " requires " + taskSpec.containerSpec.memoryMb
    + " MB but the maximum YARN container size is "
    + maxResource.getMemory() + " MB");
  taskSpec.containerSpec.memoryMb = maxResource.getMemory();
 }
 if (taskSpec.containerSpec.vCores > maxResource.getVirtualCores()) {
  LOG.warn(taskSpec.name + " requires " + taskSpec.containerSpec.vCores
    + " vcores but the maximum YARN container size is "
    + maxResource.getVirtualCores() + " vcores");
  taskSpec.containerSpec.vCores = maxResource.getVirtualCores();
 }
}

代码示例来源:origin: apache/incubator-gobblin

private Resource prepareContainerResource(GetNewApplicationResponse newApplicationResponse) {
 int memoryMbs = this.config.getInt(GobblinYarnConfigurationKeys.APP_MASTER_MEMORY_MBS_KEY);
 int maximumMemoryCapacity = newApplicationResponse.getMaximumResourceCapability().getMemory();
 if (memoryMbs > maximumMemoryCapacity) {
  LOGGER.info(String.format("Specified AM memory [%d] is above the maximum memory capacity [%d] of the "
    + "cluster, using the maximum memory capacity instead.", memoryMbs, maximumMemoryCapacity));
  memoryMbs = maximumMemoryCapacity;
 }
 int vCores = this.config.getInt(GobblinYarnConfigurationKeys.APP_MASTER_CORES_KEY);
 int maximumVirtualCoreCapacity = newApplicationResponse.getMaximumResourceCapability().getVirtualCores();
 if (vCores > maximumVirtualCoreCapacity) {
  LOGGER.info(String.format("Specified AM vcores [%d] is above the maximum vcore capacity [%d] of the "
    + "cluster, using the maximum vcore capacity instead.", memoryMbs, maximumMemoryCapacity));
  vCores = maximumVirtualCoreCapacity;
 }
 // Set up resource type requirements for ApplicationMaster
 return Resource.newInstance(memoryMbs, vCores);
}

代码示例来源:origin: apache/hive

@Override
public Resource getTotalResources() {
 int memory = 0;
 int vcores = 0;
 readLock.lock();
 try {
  int numInstancesFound = 0;
  for (LlapServiceInstance inst : activeInstances.getAll()) {
   Resource r = inst.getResource();
   memory += r.getMemory();
   vcores += r.getVirtualCores();
   numInstancesFound++;
  }
  if (LOG.isDebugEnabled()) {
   LOG.debug("GetTotalResources: numInstancesFound={}, totalMem={}, totalVcores={}",
     numInstancesFound, memory, vcores);
  }
 } finally {
  readLock.unlock();
 }
 return Resource.newInstance(memory, vcores);
}

代码示例来源:origin: alibaba/jstorm

@Override
public String info() throws TException {
  StringBuffer sbRet = new StringBuffer();
  sbRet.append("JstormOnYarn\n");
  sbRet.append("Instance Name:" + jstormMasterContext.instanceName + "\n");
  sbRet.append("Jstorm's location on hdfs:" + jstormMasterContext.deployPath + "\n");
  if (jstormMasterContext.user != null) {
    sbRet.append("Jstorm's data path:" + jstormMasterContext.nimbusDataDirPrefix + jstormMasterContext.instanceName + "\n");
    sbRet.append("Cluster userName:" + jstormMasterContext.user + "\n");
  }
  sbRet.append("Nimbus Count:" + jstormMasterContext.nimbusContainers.size() + "\n");
  sbRet.append("Supervisor Count:" + jstormMasterContext.supervisorContainers.size() + "\n");
  sbRet.append("detail :\n");
  sbRet.append("Type      \tContainerId                              \tHost      \tContainerMemory\tContainerVCores\n");
  for (Container container : jstormMasterContext.nimbusContainers) {
    sbRet.append("Nimbus    \t" + container.getId().toString() + "\t" + container.getNodeId().getHost() + "\t" + container.getResource().getMemory()
        + "\t        " + container.getResource().getVirtualCores() + "\n");
  }
  for (Container container : jstormMasterContext.supervisorContainers) {
    sbRet.append("Supervisor\t" + container.getId().toString() + "\t" + container.getNodeId().getHost() + "\t" + container.getResource().getMemory()
        + "\t        " + container.getResource().getVirtualCores() + "\n");
  }
  LOG.info("info is: " + sbRet.toString());
  return sbRet.toString();
}

代码示例来源:origin: apache/drill

/**
 * Utility method to display YARN container information in a useful way for
 * log messages.
 *
 * @param container
 * @return
 */
public static String describeContainer(Container container) {
 StringBuilder buf = new StringBuilder()
   .append("[id: ")
   .append(container.getId())
   .append(", host: ")
   .append(container.getNodeId().getHost())
   .append(", priority: ")
   .append(container.getPriority())
   .append(", memory: ")
   .append(container.getResource().getMemory())
   .append(" MB, vcores: ")
   .append(container.getResource().getVirtualCores())
   .append("]");
 return buf.toString();
}

代码示例来源:origin: apache/drill

private void yarnReport() {
 RegisterApplicationMasterResponse response = yarn.getRegistrationResponse();
 LOG.info("YARN queue: " + response.getQueue());
 Resource resource = response.getMaximumResourceCapability();
 LOG.info("YARN max resource: " + resource.getMemory() + " MB, "
   + resource.getVirtualCores() + " cores");
 EnumSet<SchedulerResourceTypes> types = response
   .getSchedulerResourceTypes();
 StringBuilder buf = new StringBuilder();
 String sep = "";
 for (SchedulerResourceTypes type : types) {
  buf.append(sep);
  buf.append(type.toString());
  sep = ", ";
 }
 LOG.info("YARN scheduler resource types: " + buf.toString());
}

代码示例来源:origin: apache/flink

final Resource res = rep.getCapability();
totalMemory += res.getMemory();
totalCores += res.getVirtualCores();
ps.format(format, "NodeID", rep.getNodeId());
ps.format(format, "Memory", res.getMemory() + " MB");
ps.format(format, "vCores", res.getVirtualCores());
ps.format(format, "HealthReport", rep.getHealthReport());
ps.format(format, "Containers", rep.getNumContainers());

代码示例来源:origin: apache/incubator-gobblin

if (usedResource != null) {
 messageBuilder.append("\tUsed memory (MBs): ").append(usedResource.getMemory()).append("\n");
 messageBuilder.append("\tUsed vcores: ").append(usedResource.getVirtualCores()).append("\n");

代码示例来源:origin: apache/incubator-gobblin

private void requestContainer(Optional<String> preferredNode) {
 Priority priority = Records.newRecord(Priority.class);
 priority.setPriority(0);
 Resource capability = Records.newRecord(Resource.class);
 int maxMemoryCapacity = this.maxResourceCapacity.get().getMemory();
 capability.setMemory(this.requestedContainerMemoryMbs <= maxMemoryCapacity ?
   this.requestedContainerMemoryMbs : maxMemoryCapacity);
 int maxCoreCapacity = this.maxResourceCapacity.get().getVirtualCores();
 capability.setVirtualCores(this.requestedContainerCores <= maxCoreCapacity ?
   this.requestedContainerCores : maxCoreCapacity);
 String[] preferredNodes = preferredNode.isPresent() ? new String[] {preferredNode.get()} : null;
 this.amrmClientAsync.addContainerRequest(
   new AMRMClient.ContainerRequest(capability, preferredNodes, null, priority));
}

代码示例来源:origin: apache/hive

Resource r = inst.getResource();
memory += r.getMemory();
vcores += r.getVirtualCores();
numInstancesFound++;

代码示例来源:origin: apache/ignite

/**
 * @return {@code True} if cluster contains available resources.
 */
private boolean checkAvailableResource() {
  Resource availableRes = rmClient.getAvailableResources();
  return availableRes == null || availableRes.getMemory() >= props.totalMemoryPerNode()
    && availableRes.getVirtualCores() >= props.cpusPerNode();
}

代码示例来源:origin: apache/drill

private void validateResources( AppSpec master ) throws ClientException {
 // Memory and core checks per YARN app specs.
 int maxMemory = appResponse.getMaximumResourceCapability().getMemory();
 int maxCores = appResponse.getMaximumResourceCapability().getVirtualCores();
 if (verbose) {
  System.out.println("Max Memory: " + maxMemory);
  System.out.println("Max Cores: " + maxCores);
 }
 // YARN behaves very badly if we request a container larger than the
 // maximum.
 if (master.memoryMb > maxMemory) {
  throw new ClientException( "YARN maximum memory is " + maxMemory
    + " but the application master requests " + master.memoryMb );
 }
 if (master.vCores > maxCores) {
  throw new ClientException("YARN maximum vcores is " + maxCores
    + " but the application master requests " + master.vCores);
 }
 // Verify the limits for the Drillbit as well.
 if (config.getInt(DrillOnYarnConfig.DRILLBIT_MEMORY) > maxMemory) {
  throw new ClientException(
    "YARN maximum memory is " + maxMemory + " but the Drillbit requests "
      + config.getInt(DrillOnYarnConfig.DRILLBIT_MEMORY));
 }
 if (config.getInt(DrillOnYarnConfig.DRILLBIT_VCORES) > maxCores) {
  throw new ClientException("YARN maximum vcores is " + maxCores
    + " but the Drillbit requests "
    + config.getInt(DrillOnYarnConfig.DRILLBIT_VCORES));
 }
}

代码示例来源:origin: apache/flink

numYarnMaxVcores = yarnClient.getNodeReports(NodeState.RUNNING)
  .stream()
  .mapToInt(report -> report.getCapability().getVirtualCores())
  .max()
  .orElse(0);

代码示例来源:origin: apache/drill

private void buildNodeMap() throws YarnFacadeException {
 List<NodeReport> nodes = yarn.getNodeReports();
 for (NodeReport node : nodes) {
  String hostName = node.getNodeId().getHost();
  nodeMap.put(hostName, node.getHttpAddress());
  yarnNodes.put(hostName, node);
 }
 if (LOG.isInfoEnabled()) {
  LOG.info("YARN Node report");
  for (NodeReport node : nodes) {
   LOG.info("Node: " + node.getHttpAddress() + ", Rack: "
     + node.getRackName() + " has " + node.getCapability().getMemory()
     + " MB, " + node.getCapability().getVirtualCores()
     + " vcores, labels: " + node.getNodeLabels());
  }
 }
}

代码示例来源:origin: apache/hive

this.metrics = metrics;
int numVcores = serviceInstance.getResource().getVirtualCores();
int memoryPerInstance = serviceInstance.getResource().getMemory();
int memoryPerExecutor = (int)(memoryPerInstance / (double) numVcores);
   .get(ConfVars.LLAP_DAEMON_TASK_SCHEDULER_WAIT_QUEUE_SIZE.varname);
 LOG.info("Setting up node: {} with available capacity={}, pendingQueueSize={}, memory={}",
   serviceInstance, serviceInstance.getResource().getVirtualCores(),
   pendingQueueCapacityString, serviceInstance.getResource().getMemory());
 if (pendingQueueCapacityString != null) {

代码示例来源:origin: apache/ignite

/**
 * @param cont Container.
 * @return {@code True} if container satisfies requirements.
 */
private boolean checkContainer(Container cont) {
  // Check limit on running nodes.
  if (props.instances() <= containers.size())
    return false;
  // Check host name
  if (props.hostnameConstraint() != null
      && props.hostnameConstraint().matcher(cont.getNodeId().getHost()).matches())
    return false;
  // Check that slave satisfies min requirements.
  if (cont.getResource().getVirtualCores() < props.cpusPerNode()
    || cont.getResource().getMemory() < props.totalMemoryPerNode()) {
    log.log(Level.FINE, "Container resources not sufficient requirements. Host: {0}, cpu: {1}, mem: {2}",
      new Object[]{cont.getNodeId().getHost(), cont.getResource().getVirtualCores(),
        cont.getResource().getMemory()});
    return false;
  }
  return true;
}

代码示例来源:origin: apache/ignite

c.getId(),
c.getNodeId(),
c.getResource().getVirtualCores(),
c.getResource().getMemory()));

代码示例来源:origin: apache/hive

ss.out.println(Joiner.on("\t").join(appId, instance.getWorkerIdentity(), instance.getHost(),
 instance.getRpcPort(), instance.getResource().getMemory() * 1024L * 1024L,
 instance.getResource().getVirtualCores()));

代码示例来源:origin: alibaba/jstorm

+ allocatedContainer.getResource().getMemory()
+ ", containerResourceVirtualCores"
+ allocatedContainer.getResource().getVirtualCores());

代码示例来源:origin: apache/hive

if (r != null) {
 jg.writeObjectFieldStart("resource");
 jg.writeNumberField("vcores", r.getVirtualCores());
 jg.writeNumberField("memory", r.getMemory());
 jg.writeEndObject();

相关文章