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


Java FiCaSchedulerApp.getUser方法代码示例

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


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

示例1: getTotalPendingResourcesConsideringUserLimit

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.common.fica.FiCaSchedulerApp; //导入方法依赖的package包/类
public synchronized Resource getTotalPendingResourcesConsideringUserLimit(
        Resource resources, String partition) {
  Map<String, Resource> userNameToHeadroom = new HashMap<String, Resource>();
  Resource pendingConsideringUserLimit = Resource.newInstance(0, 0);
  for (FiCaSchedulerApp app : getApplications()) {
    String userName = app.getUser();
    if (!userNameToHeadroom.containsKey(userName)) {
      User user = getUser(userName);
      Resource headroom = Resources.subtract(
          computeUserLimit(app, resources, user, partition,
              SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY),
              user.getUsed(partition));
      // Make sure headroom is not negative.
      headroom = Resources.componentwiseMax(headroom, Resources.none());
      userNameToHeadroom.put(userName, headroom);
    }
    Resource minpendingConsideringUserLimit =
        Resources.componentwiseMin(userNameToHeadroom.get(userName),
                     app.getAppAttemptResourceUsage().getPending(partition));
    Resources.addTo(pendingConsideringUserLimit,
        minpendingConsideringUserLimit);
    Resources.subtractFrom(
        userNameToHeadroom.get(userName), minpendingConsideringUserLimit);
  }
  return pendingConsideringUserLimit;
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:27,代码来源:LeafQueue.java

示例2: releaseResource

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.common.fica.FiCaSchedulerApp; //导入方法依赖的package包/类
synchronized void releaseResource(Resource clusterResource, 
    FiCaSchedulerApp application, Resource resource, Set<String> nodeLabels,boolean isSuspend) {
  super.releaseResource(clusterResource, resource, nodeLabels,isSuspend);
  
  // Update user metrics
  String userName = application.getUser();
  User user = getUser(userName);
  user.releaseContainer(resource, nodeLabels);
  if(!isSuspend){
    metrics.setAvailableResourcesToUser(userName, application.getHeadroom());
  }
  
  LOG.info(getQueueName() + 
          " used=" + queueUsage.getUsed() + " numContainers=" + numContainers +
          " headroom = " + application.getHeadroom() +
          " user-resources=" + user.getUsed()+"allocate resource:"+resource+
          " absUsed= "+getAbsoluteUsedCapacity()
          );
}
 
开发者ID:yncxcw,项目名称:big-c,代码行数:20,代码来源:LeafQueue.java

示例3: moveApplication

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.common.fica.FiCaSchedulerApp; //导入方法依赖的package包/类
@Override
public synchronized String moveApplication(ApplicationId appId,
    String targetQueueName) throws YarnException {
  FiCaSchedulerApp app =
      getApplicationAttempt(ApplicationAttemptId.newInstance(appId, 0));
  String sourceQueueName = app.getQueue().getQueueName();
  LeafQueue source = getAndCheckLeafQueue(sourceQueueName);
  String destQueueName = handleMoveToPlanQueue(targetQueueName);
  LeafQueue dest = getAndCheckLeafQueue(destQueueName);
  // Validation check - ACLs, submission limits for user & queue
  String user = app.getUser();
  try {
    dest.submitApplication(appId, user, destQueueName);
  } catch (AccessControlException e) {
    throw new YarnException(e);
  }
  // Move all live containers
  for (RMContainer rmContainer : app.getLiveContainers()) {
    source.detachContainer(clusterResource, app, rmContainer);
    // attach the Container to another queue
    dest.attachContainer(clusterResource, app, rmContainer);
  }
  // Detach the application..
  source.finishApplicationAttempt(app, sourceQueueName);
  source.getParent().finishApplication(appId, app.getUser());
  // Finish app & update metrics
  app.move(dest);
  // Submit to a new queue
  dest.submitApplicationAttempt(app, user);
  applications.get(appId).setQueue(dest);
  LOG.info("App: " + app.getApplicationId() + " successfully moved from "
      + sourceQueueName + " to: " + destQueueName);
  return targetQueueName;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:35,代码来源:CapacityScheduler.java

示例4: computeUserLimitAndSetHeadroom

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.common.fica.FiCaSchedulerApp; //导入方法依赖的package包/类
@Lock({LeafQueue.class, FiCaSchedulerApp.class})
Resource computeUserLimitAndSetHeadroom(FiCaSchedulerApp application,
    Resource clusterResource, Resource required, Set<String> requestedLabels) {
  String user = application.getUser();
  User queueUser = getUser(user);

  // Compute user limit respect requested labels,
  // TODO, need consider headroom respect labels also
  Resource userLimit =
      computeUserLimit(application, clusterResource, required,
          queueUser, requestedLabels);

  setQueueResourceLimitsInfo(clusterResource);
  
  Resource headroom =
      getHeadroom(queueUser, cachedResourceLimitsForHeadroom.getLimit(),
          clusterResource, userLimit);
  
  if (LOG.isDebugEnabled()) {
    LOG.debug("Headroom calculation for user " + user + ": " + 
        " userLimit=" + userLimit + 
        " queueMaxAvailRes=" + cachedResourceLimitsForHeadroom.getLimit() +
        " consumed=" + queueUser.getUsed() + 
        " headroom=" + headroom);
  }
  
  CapacityHeadroomProvider headroomProvider = new CapacityHeadroomProvider(
    queueUser, this, application, required, queueResourceLimitsInfo);
  
  application.setHeadroomProvider(headroomProvider);

  metrics.setAvailableResourcesToUser(user, headroom);
  
  return userLimit;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:36,代码来源:LeafQueue.java

示例5: releaseResource

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.common.fica.FiCaSchedulerApp; //导入方法依赖的package包/类
synchronized void releaseResource(Resource clusterResource, 
    FiCaSchedulerApp application, Resource resource, Set<String> nodeLabels) {
  super.releaseResource(clusterResource, resource, nodeLabels);
  
  // Update user metrics
  String userName = application.getUser();
  User user = getUser(userName);
  user.releaseContainer(resource, nodeLabels);
  metrics.setAvailableResourcesToUser(userName, application.getHeadroom());
    
  LOG.info(getQueueName() +
      " used=" + queueUsage.getUsed() + " numContainers=" + numContainers +
      " user=" + userName + " user-resources=" + user.getUsed());
}
 
开发者ID:naver,项目名称:hadoop,代码行数:15,代码来源:LeafQueue.java

示例6: computeUserLimitAndSetHeadroom

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.common.fica.FiCaSchedulerApp; //导入方法依赖的package包/类
@Lock({LeafQueue.class, FiCaSchedulerApp.class})
Resource computeUserLimitAndSetHeadroom(FiCaSchedulerApp application,
    Resource clusterResource, String nodePartition,
    SchedulingMode schedulingMode) {
  String user = application.getUser();
  User queueUser = getUser(user);

  // Compute user limit respect requested labels,
  // TODO, need consider headroom respect labels also
  Resource userLimit =
      computeUserLimit(application, clusterResource, queueUser,
          nodePartition, schedulingMode);

  setQueueResourceLimitsInfo(clusterResource);
  
  Resource headroom =
      getHeadroom(queueUser, cachedResourceLimitsForHeadroom.getLimit(),
          clusterResource, userLimit);
  
  if (LOG.isDebugEnabled()) {
    LOG.debug("Headroom calculation for user " + user + ": " + 
        " userLimit=" + userLimit + 
        " queueMaxAvailRes=" + cachedResourceLimitsForHeadroom.getLimit() +
        " consumed=" + queueUser.getUsed() + 
        " headroom=" + headroom);
  }
  
  CapacityHeadroomProvider headroomProvider = new CapacityHeadroomProvider(
    queueUser, this, application, queueResourceLimitsInfo);
  
  application.setHeadroomProvider(headroomProvider);

  metrics.setAvailableResourcesToUser(user, headroom);
  
  return userLimit;
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:37,代码来源:LeafQueue.java

示例7: releaseResource

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.common.fica.FiCaSchedulerApp; //导入方法依赖的package包/类
synchronized void releaseResource(Resource clusterResource,
    FiCaSchedulerApp application, Resource resource, String nodePartition,
    RMContainer rmContainer, boolean isChangeResource) {
  super.releaseResource(clusterResource, resource, nodePartition,
      isChangeResource);
  
  // handle ignore exclusivity container
  if (null != rmContainer && rmContainer.getNodeLabelExpression().equals(
      RMNodeLabelsManager.NO_LABEL)
      && !nodePartition.equals(RMNodeLabelsManager.NO_LABEL)) {
    if (ignorePartitionExclusivityRMContainers.containsKey(nodePartition)) {
      Set<RMContainer> rmContainers =
          ignorePartitionExclusivityRMContainers.get(nodePartition);
      rmContainers.remove(rmContainer);
      if (rmContainers.isEmpty()) {
        ignorePartitionExclusivityRMContainers.remove(nodePartition);
      }
    }
  }

  // Update user metrics
  String userName = application.getUser();
  User user = getUser(userName);
  user.releaseContainer(resource, nodePartition);
  metrics.setAvailableResourcesToUser(userName, application.getHeadroom());

  if (LOG.isDebugEnabled()) {
    LOG.debug(getQueueName() +
        " used=" + queueUsage.getUsed() + " numContainers=" + numContainers +
        " user=" + userName + " user-resources=" + user.getUsed());
  }
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:33,代码来源:LeafQueue.java

示例8: computeUserLimitAndSetHeadroom

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.common.fica.FiCaSchedulerApp; //导入方法依赖的package包/类
@Lock({LeafQueue.class, FiCaSchedulerApp.class})
Resource computeUserLimitAndSetHeadroom(FiCaSchedulerApp application,
    Resource clusterResource, Resource required, Set<String> requestedLabels) {
  String user = application.getUser();
  User queueUser = getUser(user);

  // Compute user limit respect requested labels,
  // TODO, need consider headroom respect labels also
  Resource userLimit =
      computeUserLimit(application, clusterResource, required,
          queueUser, requestedLabels);

  setQueueResourceLimitsInfo(clusterResource);
  
  Resource headroom =
      getHeadroom(queueUser, cachedResourceLimitsForHeadroom.getLimit(),
          clusterResource, userLimit);
  
 {
    LOG.debug("Headroom calculation for user " + user + ": " + 
        " userLimit=" + userLimit + 
        " queueMaxAvailRes=" + cachedResourceLimitsForHeadroom.getLimit() +
        " consumed=" + queueUser.getUsed() + 
        " headroom=" + headroom);
  }
  
  CapacityHeadroomProvider headroomProvider = new CapacityHeadroomProvider(
    queueUser, this, application, required, queueResourceLimitsInfo);
  
  application.setHeadroomProvider(headroomProvider);

  metrics.setAvailableResourcesToUser(user, headroom);
  
  return userLimit;
}
 
开发者ID:yncxcw,项目名称:big-c,代码行数:36,代码来源:LeafQueue.java


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