当前位置: 首页>>代码示例>>Java>>正文


Java NodeType.equals方法代码示例

本文整理汇总了Java中org.apache.hadoop.yarn.server.resourcemanager.scheduler.NodeType.equals方法的典型用法代码示例。如果您正苦于以下问题:Java NodeType.equals方法的具体用法?Java NodeType.equals怎么用?Java NodeType.equals使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.hadoop.yarn.server.resourcemanager.scheduler.NodeType的用法示例。


在下文中一共展示了NodeType.equals方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: getAllowedLocalityLevel

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.NodeType; //导入方法依赖的package包/类
/**
 * Return the level at which we are allowed to schedule containers, given the
 * current size of the cluster and thresholds indicating how many nodes to
 * fail at (as a fraction of cluster size) before relaxing scheduling
 * constraints.
 */
public synchronized NodeType getAllowedLocalityLevel(Priority priority,
    int numNodes, double nodeLocalityThreshold, double rackLocalityThreshold) {
  // upper limit on threshold
  if (nodeLocalityThreshold > 1.0) { nodeLocalityThreshold = 1.0; }
  if (rackLocalityThreshold > 1.0) { rackLocalityThreshold = 1.0; }

  // If delay scheduling is not being used, can schedule anywhere
  if (nodeLocalityThreshold < 0.0 || rackLocalityThreshold < 0.0) {
    return NodeType.OFF_SWITCH;
  }

  // Default level is NODE_LOCAL
  if (!allowedLocalityLevel.containsKey(priority)) {
    allowedLocalityLevel.put(priority, NodeType.NODE_LOCAL);
    return NodeType.NODE_LOCAL;
  }

  NodeType allowed = allowedLocalityLevel.get(priority);

  // If level is already most liberal, we're done
  if (allowed.equals(NodeType.OFF_SWITCH)) return NodeType.OFF_SWITCH;

  double threshold = allowed.equals(NodeType.NODE_LOCAL) ? nodeLocalityThreshold :
    rackLocalityThreshold;

  // Relax locality constraints once we've surpassed threshold.
  if (getSchedulingOpportunities(priority) > (numNodes * threshold)) {
    if (allowed.equals(NodeType.NODE_LOCAL)) {
      allowedLocalityLevel.put(priority, NodeType.RACK_LOCAL);
      resetSchedulingOpportunities(priority);
    }
    else if (allowed.equals(NodeType.RACK_LOCAL)) {
      allowedLocalityLevel.put(priority, NodeType.OFF_SWITCH);
      resetSchedulingOpportunities(priority);
    }
  }
  return allowedLocalityLevel.get(priority);
}
 
开发者ID:naver,项目名称:hadoop,代码行数:45,代码来源:FSAppAttempt.java

示例2: getAllowedLocalityLevelByTime

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.NodeType; //导入方法依赖的package包/类
/**
 * Return the level at which we are allowed to schedule containers.
 * Given the thresholds indicating how much time passed before relaxing
 * scheduling constraints.
 */
public synchronized NodeType getAllowedLocalityLevelByTime(Priority priority,
        long nodeLocalityDelayMs, long rackLocalityDelayMs,
        long currentTimeMs) {

  // if not being used, can schedule anywhere
  if (nodeLocalityDelayMs < 0 || rackLocalityDelayMs < 0) {
    return NodeType.OFF_SWITCH;
  }

  // default level is NODE_LOCAL
  if (! allowedLocalityLevel.containsKey(priority)) {
    allowedLocalityLevel.put(priority, NodeType.NODE_LOCAL);
    return NodeType.NODE_LOCAL;
  }

  NodeType allowed = allowedLocalityLevel.get(priority);

  // if level is already most liberal, we're done
  if (allowed.equals(NodeType.OFF_SWITCH)) {
    return NodeType.OFF_SWITCH;
  }

  // check waiting time
  long waitTime = currentTimeMs;
  if (lastScheduledContainer.containsKey(priority)) {
    waitTime -= lastScheduledContainer.get(priority);
  } else {
    waitTime -= getStartTime();
  }

  long thresholdTime = allowed.equals(NodeType.NODE_LOCAL) ?
          nodeLocalityDelayMs : rackLocalityDelayMs;

  if (waitTime > thresholdTime) {
    if (allowed.equals(NodeType.NODE_LOCAL)) {
      allowedLocalityLevel.put(priority, NodeType.RACK_LOCAL);
      resetSchedulingOpportunities(priority, currentTimeMs);
    } else if (allowed.equals(NodeType.RACK_LOCAL)) {
      allowedLocalityLevel.put(priority, NodeType.OFF_SWITCH);
      resetSchedulingOpportunities(priority, currentTimeMs);
    }
  }
  return allowedLocalityLevel.get(priority);
}
 
开发者ID:naver,项目名称:hadoop,代码行数:50,代码来源:FSAppAttempt.java

示例3: allocate

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.NodeType; //导入方法依赖的package包/类
synchronized public RMContainer allocate(NodeType type, FSSchedulerNode node,
    Priority priority, ResourceRequest request,
    Container container) {
  // Update allowed locality level
  NodeType allowed = allowedLocalityLevel.get(priority);
  if (allowed != null) {
    if (allowed.equals(NodeType.OFF_SWITCH) &&
        (type.equals(NodeType.NODE_LOCAL) ||
            type.equals(NodeType.RACK_LOCAL))) {
      this.resetAllowedLocalityLevel(priority, type);
    }
    else if (allowed.equals(NodeType.RACK_LOCAL) &&
        type.equals(NodeType.NODE_LOCAL)) {
      this.resetAllowedLocalityLevel(priority, type);
    }
  }

  // Required sanity check - AM can call 'allocate' to update resource 
  // request without locking the scheduler, hence we need to check
  if (getTotalRequiredResources(priority) <= 0) {
    return null;
  }
  
  // Create RMContainer
  RMContainer rmContainer = new RMContainerImpl(container, 
      getApplicationAttemptId(), node.getNodeID(),
      appSchedulingInfo.getUser(), rmContext);

  // Add it to allContainers list.
  newlyAllocatedContainers.add(rmContainer);
  liveContainers.put(container.getId(), rmContainer);    

  // Update consumption and track allocations
  List<ResourceRequest> resourceRequestList = appSchedulingInfo.allocate(
      type, node, priority, request, container);
  this.attemptResourceUsage.incUsed(container.getResource());

  // Update resource requests related to "request" and store in RMContainer
  ((RMContainerImpl) rmContainer).setResourceRequests(resourceRequestList);

  // Inform the container
  rmContainer.handle(
      new RMContainerEvent(container.getId(), RMContainerEventType.START));

  if (LOG.isDebugEnabled()) {
    LOG.debug("allocate: applicationAttemptId=" 
        + container.getId().getApplicationAttemptId() 
        + " container=" + container.getId() + " host="
        + container.getNodeId().getHost() + " type=" + type);
  }
  RMAuditLogger.logSuccess(getUser(), 
      AuditConstants.ALLOC_CONTAINER, "SchedulerApp", 
      getApplicationId(), container.getId());
  
  return rmContainer;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:57,代码来源:FSAppAttempt.java

示例4: getAllowedLocalityLevelByTime

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.NodeType; //导入方法依赖的package包/类
/**
 * Return the level at which we are allowed to schedule containers.
 * Given the thresholds indicating how much time passed before relaxing
 * scheduling constraints.
 */
public synchronized NodeType getAllowedLocalityLevelByTime(Priority priority,
        long nodeLocalityDelayMs, long rackLocalityDelayMs,
        long currentTimeMs) {

  // if not being used, can schedule anywhere
  if (nodeLocalityDelayMs < 0 || rackLocalityDelayMs < 0) {
    return NodeType.OFF_SWITCH;
  }

  // default level is NODE_LOCAL
  if (! allowedLocalityLevel.containsKey(priority)) {
    // add the initial time of priority to prevent comparing with FsApp
    // startTime and allowedLocalityLevel degrade
    lastScheduledContainer.put(priority, currentTimeMs);
    if (LOG.isDebugEnabled()) {
      LOG.debug("Init the lastScheduledContainer time, priority: " + priority
          + ", time: " + currentTimeMs);
    }
    allowedLocalityLevel.put(priority, NodeType.NODE_LOCAL);
    return NodeType.NODE_LOCAL;
  }

  NodeType allowed = allowedLocalityLevel.get(priority);

  // if level is already most liberal, we're done
  if (allowed.equals(NodeType.OFF_SWITCH)) {
    return NodeType.OFF_SWITCH;
  }

  // check waiting time
  long waitTime = currentTimeMs;
  if (lastScheduledContainer.containsKey(priority)) {
    waitTime -= lastScheduledContainer.get(priority);
  } else {
    waitTime -= getStartTime();
  }

  long thresholdTime = allowed.equals(NodeType.NODE_LOCAL) ?
          nodeLocalityDelayMs : rackLocalityDelayMs;

  if (waitTime > thresholdTime) {
    if (allowed.equals(NodeType.NODE_LOCAL)) {
      allowedLocalityLevel.put(priority, NodeType.RACK_LOCAL);
      resetSchedulingOpportunities(priority, currentTimeMs);
    } else if (allowed.equals(NodeType.RACK_LOCAL)) {
      allowedLocalityLevel.put(priority, NodeType.OFF_SWITCH);
      resetSchedulingOpportunities(priority, currentTimeMs);
    }
  }
  return allowedLocalityLevel.get(priority);
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:57,代码来源:FSAppAttempt.java

示例5: assignContainer

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.NodeType; //导入方法依赖的package包/类
private Resource assignContainer(FSSchedulerNode node, boolean reserved) {
  if (LOG.isDebugEnabled()) {
    LOG.debug("Node offered to app: " + getName() + " reserved: " + reserved);
  }

  Collection<Priority> prioritiesToTry = (reserved) ?
      Arrays.asList(node.getReservedContainer().getReservedPriority()) :
      getPriorities();

  // For each priority, see if we can schedule a node local, rack local
  // or off-switch request. Rack of off-switch requests may be delayed
  // (not scheduled) in order to promote better locality.
  synchronized (this) {
    for (Priority priority : prioritiesToTry) {
      // Skip it for reserved container, since
      // we already check it in isValidReservation.
      if (!reserved && !hasContainerForNode(priority, node)) {
        continue;
      }

      addSchedulingOpportunity(priority);

      ResourceRequest rackLocalRequest = getResourceRequest(priority,
          node.getRackName());
      ResourceRequest localRequest = getResourceRequest(priority,
          node.getNodeName());

      if (localRequest != null && !localRequest.getRelaxLocality()) {
        LOG.warn("Relax locality off is not supported on local request: "
            + localRequest);
      }

      NodeType allowedLocality;
      if (scheduler.isContinuousSchedulingEnabled()) {
        allowedLocality = getAllowedLocalityLevelByTime(priority,
            scheduler.getNodeLocalityDelayMs(),
            scheduler.getRackLocalityDelayMs(),
            scheduler.getClock().getTime());
      } else {
        allowedLocality = getAllowedLocalityLevel(priority,
            scheduler.getNumClusterNodes(),
            scheduler.getNodeLocalityThreshold(),
            scheduler.getRackLocalityThreshold());
      }

      if (rackLocalRequest != null && rackLocalRequest.getNumContainers() != 0
          && localRequest != null && localRequest.getNumContainers() != 0) {
        return assignContainer(node, localRequest,
            NodeType.NODE_LOCAL, reserved);
      }

      if (rackLocalRequest != null && !rackLocalRequest.getRelaxLocality()) {
        continue;
      }

      if (rackLocalRequest != null && rackLocalRequest.getNumContainers() != 0
          && (allowedLocality.equals(NodeType.RACK_LOCAL) ||
          allowedLocality.equals(NodeType.OFF_SWITCH))) {
        return assignContainer(node, rackLocalRequest,
            NodeType.RACK_LOCAL, reserved);
      }

      ResourceRequest offSwitchRequest =
          getResourceRequest(priority, ResourceRequest.ANY);
      if (offSwitchRequest != null && !offSwitchRequest.getRelaxLocality()) {
        continue;
      }

      if (offSwitchRequest != null &&
          offSwitchRequest.getNumContainers() != 0) {
        if (!hasNodeOrRackLocalRequests(priority) ||
            allowedLocality.equals(NodeType.OFF_SWITCH)) {
          return assignContainer(
              node, offSwitchRequest, NodeType.OFF_SWITCH, reserved);
        }
      }
    }
  }
  return Resources.none();
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:81,代码来源:FSAppAttempt.java

示例6: allocate

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.NodeType; //导入方法依赖的package包/类
synchronized public RMContainer allocate(NodeType type, FSSchedulerNode node,
    Priority priority, ResourceRequest request,
    Container container) {
  // Update allowed locality level
  NodeType allowed = allowedLocalityLevel.get(priority);
  if (allowed != null) {
    if (allowed.equals(NodeType.OFF_SWITCH) &&
        (type.equals(NodeType.NODE_LOCAL) ||
            type.equals(NodeType.RACK_LOCAL))) {
      this.resetAllowedLocalityLevel(priority, type);
    }
    else if (allowed.equals(NodeType.RACK_LOCAL) &&
        type.equals(NodeType.NODE_LOCAL)) {
      this.resetAllowedLocalityLevel(priority, type);
    }
  }

  // Required sanity check - AM can call 'allocate' to update resource 
  // request without locking the scheduler, hence we need to check
  if (getTotalRequiredResources(priority) <= 0) {
    return null;
  }
  
  // Create RMContainer
  RMContainer rmContainer = new RMContainerImpl(container, 
      getApplicationAttemptId(), node.getNodeID(),
      appSchedulingInfo.getUser(), rmContext);

  // Add it to allContainers list.
  newlyAllocatedContainers.add(rmContainer);
  liveContainers.put(container.getId(), rmContainer);    

  // Update consumption and track allocations
  List<ResourceRequest> resourceRequestList = appSchedulingInfo.allocate(
      type, node, priority, request, container);
  Resources.addTo(currentConsumption, container.getResource());

  // Update resource requests related to "request" and store in RMContainer
  ((RMContainerImpl) rmContainer).setResourceRequests(resourceRequestList);

  // Inform the container
  rmContainer.handle(
      new RMContainerEvent(container.getId(), RMContainerEventType.START));

  if (LOG.isDebugEnabled()) {
    LOG.debug("allocate: applicationAttemptId=" 
        + container.getId().getApplicationAttemptId() 
        + " container=" + container.getId() + " host="
        + container.getNodeId().getHost() + " type=" + type);
  }
  RMAuditLogger.logSuccess(getUser(), 
      AuditConstants.ALLOC_CONTAINER, "SchedulerApp", 
      getApplicationId(), container.getId());
  
  return rmContainer;
}
 
开发者ID:yncxcw,项目名称:big-c,代码行数:57,代码来源:FSAppAttempt.java

示例7: allocate

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.NodeType; //导入方法依赖的package包/类
synchronized public RMContainer allocate(NodeType type, FSSchedulerNode node,
    Priority priority, ResourceRequest request,
    Container container) {
  // Update allowed locality level
  NodeType allowed = allowedLocalityLevel.get(priority);
  if (allowed != null) {
    if (allowed.equals(NodeType.OFF_SWITCH) &&
        (type.equals(NodeType.NODE_LOCAL) ||
            type.equals(NodeType.RACK_LOCAL))) {
      this.resetAllowedLocalityLevel(priority, type);
    }
    else if (allowed.equals(NodeType.RACK_LOCAL) &&
        type.equals(NodeType.NODE_LOCAL)) {
      this.resetAllowedLocalityLevel(priority, type);
    }
  }

  // Required sanity check - AM can call 'allocate' to update resource 
  // request without locking the scheduler, hence we need to check
  if (getTotalRequiredResources(priority) <= 0) {
    return null;
  }
  
  // Create RMContainer
  RMContainer rmContainer = new RMContainerImpl(container, 
      getApplicationAttemptId(), node.getNodeID(), rmContext
      .getDispatcher().getEventHandler(), rmContext
      .getContainerAllocationExpirer());

  // Add it to allContainers list.
  newlyAllocatedContainers.add(rmContainer);
  liveContainers.put(container.getId(), rmContainer);    

  // Update consumption and track allocations

  LOG.info("TO allocate in FSSchedulerApp: type: " + type + ", node " + node + ", resource: "
          + request.getCapability());
  appSchedulingInfo.allocate(type, node, priority, request, container);
  Resources.addTo(currentConsumption, container.getResource());

  // Inform the container
  rmContainer.handle(
      new RMContainerEvent(container.getId(), RMContainerEventType.START));

  if (LOG.isDebugEnabled()) {
    LOG.debug("allocate: applicationAttemptId=" 
        + container.getId().getApplicationAttemptId() 
        + " container=" + container.getId() + " host="
        + container.getNodeId().getHost() + " type=" + type);
  }
  RMAuditLogger.logSuccess(getUser(), 
      AuditConstants.ALLOC_CONTAINER, "SchedulerApp", 
      getApplicationId(), container.getId());
  
  return rmContainer;
}
 
开发者ID:ict-carch,项目名称:hadoop-plus,代码行数:57,代码来源:FSSchedulerApp.java

示例8: allocate

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.NodeType; //导入方法依赖的package包/类
synchronized public RMContainer allocate(NodeType type, FSSchedulerNode node,
    Priority priority, ResourceRequest request,
    Container container) {
  // Update allowed locality level
  NodeType allowed = allowedLocalityLevel.get(priority);
  if (allowed != null) {
    if (allowed.equals(NodeType.OFF_SWITCH) &&
        (type.equals(NodeType.NODE_LOCAL) ||
            type.equals(NodeType.RACK_LOCAL))) {
      this.resetAllowedLocalityLevel(priority, type);
    }
    else if (allowed.equals(NodeType.RACK_LOCAL) &&
        type.equals(NodeType.NODE_LOCAL)) {
      this.resetAllowedLocalityLevel(priority, type);
    }
  }

  // Required sanity check - AM can call 'allocate' to update resource 
  // request without locking the scheduler, hence we need to check
  if (getTotalRequiredResources(priority) <= 0) {
    return null;
  }
  
  // Create RMContainer
  RMContainer rmContainer = new RMContainerImpl(container, 
      getApplicationAttemptId(), node.getNodeID(),
      appSchedulingInfo.getUser(), rmContext);
  ((RMContainerImpl)rmContainer).setQueueName(this.getQueueName());

  // Add it to allContainers list.
  newlyAllocatedContainers.add(rmContainer);
  liveContainers.put(container.getId(), rmContainer);    

  // Update consumption and track allocations
  List<ResourceRequest> resourceRequestList = appSchedulingInfo.allocate(
      type, node, priority, request, container);
  this.attemptResourceUsage.incUsed(container.getResource());

  // Update resource requests related to "request" and store in RMContainer
  ((RMContainerImpl) rmContainer).setResourceRequests(resourceRequestList);

  // Inform the container
  rmContainer.handle(
      new RMContainerEvent(container.getId(), RMContainerEventType.START));

  if (LOG.isDebugEnabled()) {
    LOG.debug("allocate: applicationAttemptId=" 
        + container.getId().getApplicationAttemptId() 
        + " container=" + container.getId() + " host="
        + container.getNodeId().getHost() + " type=" + type);
  }
  RMAuditLogger.logSuccess(getUser(), 
      AuditConstants.ALLOC_CONTAINER, "SchedulerApp", 
      getApplicationId(), container.getId());
  
  return rmContainer;
}
 
开发者ID:hopshadoop,项目名称:hops,代码行数:58,代码来源:FSAppAttempt.java


注:本文中的org.apache.hadoop.yarn.server.resourcemanager.scheduler.NodeType.equals方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。