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


Java SchedulerApplication.getCurrentAppAttempt方法代码示例

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


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

示例1: checkFifoQueue

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerApplication; //导入方法依赖的package包/类
private void checkFifoQueue(SchedulerApplication schedulerApp,
    Resource usedResources, Resource availableResources) throws Exception {
  FifoScheduler scheduler = (FifoScheduler) rm2.getResourceScheduler();
  // ************ check cluster used Resources ********
  assertEquals(usedResources, scheduler.getUsedResource());

  // ************ check app headroom ****************
  SchedulerApplicationAttempt schedulerAttempt =
      schedulerApp.getCurrentAppAttempt();
  assertEquals(availableResources, schedulerAttempt.getHeadroom());

  // ************ check queue metrics ****************
  QueueMetrics queueMetrics = scheduler.getRootQueueMetrics();
  asserteMetrics(queueMetrics, 1, 0, 1, 0, 2, availableResources.getMemory(),
    availableResources.getVirtualCores(), usedResources.getMemory(),
    usedResources.getVirtualCores());
}
 
开发者ID:Nextzero,项目名称:hadoop-2.6.0-cdh5.4.3,代码行数:18,代码来源:TestWorkPreservingRMRestart.java

示例2: moveApplication

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerApplication; //导入方法依赖的package包/类
@Override
public synchronized String moveApplication(ApplicationId appId,
    String queueName) throws YarnException {
  SchedulerApplication<FSAppAttempt> app = applications.get(appId);
  if (app == null) {
    throw new YarnException("App to be moved " + appId + " not found.");
  }
  FSAppAttempt attempt = (FSAppAttempt) app.getCurrentAppAttempt();
  // To serialize with FairScheduler#allocate, synchronize on app attempt
  synchronized (attempt) {
    FSLeafQueue oldQueue = (FSLeafQueue) app.getQueue();
    String destQueueName = handleMoveToPlanQueue(queueName);
    FSLeafQueue targetQueue = queueMgr.getLeafQueue(destQueueName, false);
    if (targetQueue == null) {
      throw new YarnException("Target queue " + queueName
          + " not found or is not a leaf queue.");
    }
    if (targetQueue == oldQueue) {
      return oldQueue.getQueueName();
    }
    
    if (oldQueue.isRunnableApp(attempt)) {
      verifyMoveDoesNotViolateConstraints(attempt, oldQueue, targetQueue);
    }
    
    executeMove(app, attempt, oldQueue, targetQueue);
    return targetQueue.getQueueName();
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:30,代码来源:FairScheduler.java

示例3: checkCSQueue

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerApplication; //导入方法依赖的package包/类
private void checkCSQueue(MockRM rm,
    SchedulerApplication<SchedulerApplicationAttempt> app,
    Resource clusterResource, Resource queueResource, Resource usedResource,
    int numContainers)
    throws Exception {
  checkCSLeafQueue(rm, app, clusterResource, queueResource, usedResource,
      numContainers);

  LeafQueue queue = (LeafQueue) app.getQueue();
  Resource availableResources =
      Resources.subtract(queueResource, usedResource);
  // ************ check app headroom ****************
  SchedulerApplicationAttempt schedulerAttempt = app.getCurrentAppAttempt();
  assertEquals(availableResources, schedulerAttempt.getHeadroom());

  // ************* check Queue metrics ************
  QueueMetrics queueMetrics = queue.getMetrics();
  assertMetrics(queueMetrics, 1, 0, 1, 0, 2, availableResources.getMemory(),
      availableResources.getVirtualCores(), usedResource.getMemory(),
      usedResource.getVirtualCores());

  // ************ check user metrics ***********
  QueueMetrics userMetrics =
      queueMetrics.getUserMetrics(app.getUser());
  assertMetrics(userMetrics, 1, 0, 1, 0, 2, availableResources.getMemory(),
      availableResources.getVirtualCores(), usedResource.getMemory(),
      usedResource.getVirtualCores());
}
 
开发者ID:naver,项目名称:hadoop,代码行数:29,代码来源:TestWorkPreservingRMRestart.java

示例4: checkFSQueue

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerApplication; //导入方法依赖的package包/类
private void checkFSQueue(ResourceManager rm,
    SchedulerApplication  schedulerApp, Resource usedResources,
    Resource availableResources) throws Exception {
  // waiting for RM's scheduling apps
  int retry = 0;
  Resource assumedFairShare = Resource.newInstance(8192, 8);
  while (true) {
    Thread.sleep(100);
    if (assumedFairShare.equals(((FairScheduler)rm.getResourceScheduler())
        .getQueueManager().getRootQueue().getFairShare())) {
      break;
    }
    retry++;
    if (retry > 30) {
      Assert.fail("Apps are not scheduled within assumed timeout");
    }
  }

  FairScheduler scheduler = (FairScheduler) rm.getResourceScheduler();
  FSParentQueue root = scheduler.getQueueManager().getRootQueue();
  // ************ check cluster used Resources ********
  assertTrue(root.getPolicy() instanceof DominantResourceFairnessPolicy);
  assertEquals(usedResources,root.getResourceUsage());

  // ************ check app headroom ****************
  FSAppAttempt schedulerAttempt =
      (FSAppAttempt) schedulerApp.getCurrentAppAttempt();
  assertEquals(availableResources, schedulerAttempt.getHeadroom());

  // ************ check queue metrics ****************
  QueueMetrics queueMetrics = scheduler.getRootQueueMetrics();
  assertMetrics(queueMetrics, 1, 0, 1, 0, 2, availableResources.getMemory(),
      availableResources.getVirtualCores(), usedResources.getMemory(),
      usedResources.getVirtualCores());
}
 
开发者ID:naver,项目名称:hadoop,代码行数:36,代码来源:TestWorkPreservingRMRestart.java

示例5: moveApplication

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerApplication; //导入方法依赖的package包/类
@Override
public synchronized String moveApplication(ApplicationId appId,
    String queueName) throws YarnException {
  SchedulerApplication<FSAppAttempt> app = applications.get(appId);
  if (app == null) {
    throw new YarnException("App to be moved " + appId + " not found.");
  }
  FSAppAttempt attempt = (FSAppAttempt) app.getCurrentAppAttempt();
  // To serialize with FairScheduler#allocate, synchronize on app attempt
  synchronized (attempt) {
    FSLeafQueue oldQueue = (FSLeafQueue) app.getQueue();
    FSLeafQueue targetQueue = queueMgr.getLeafQueue(queueName, false);
    if (targetQueue == null) {
      throw new YarnException("Target queue " + queueName
          + " not found or is not a leaf queue.");
    }
    if (targetQueue == oldQueue) {
      return oldQueue.getQueueName();
    }
    
    if (oldQueue.isRunnableApp(attempt)) {
      verifyMoveDoesNotViolateConstraints(attempt, oldQueue, targetQueue);
    }
    
    executeMove(app, attempt, oldQueue, targetQueue);
    return targetQueue.getQueueName();
  }
}
 
开发者ID:Nextzero,项目名称:hadoop-2.6.0-cdh5.4.3,代码行数:29,代码来源:FairScheduler.java

示例6: checkCSQueue

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerApplication; //导入方法依赖的package包/类
private void checkCSQueue(MockRM rm,
    SchedulerApplication<SchedulerApplicationAttempt> app,
    Resource clusterResource, Resource queueResource, Resource usedResource,
    int numContainers)
    throws Exception {
  checkCSLeafQueue(rm, app, clusterResource, queueResource, usedResource,
      numContainers);

  LeafQueue queue = (LeafQueue) app.getQueue();
  Resource availableResources =
      Resources.subtract(queueResource, usedResource);
  // ************ check app headroom ****************
  SchedulerApplicationAttempt schedulerAttempt = app.getCurrentAppAttempt();
  assertEquals(availableResources, schedulerAttempt.getHeadroom());

  // ************* check Queue metrics ************
  QueueMetrics queueMetrics = queue.getMetrics();
  assertMetrics(queueMetrics, 1, 0, 1, 0, 2, availableResources.getMemorySize(),
      availableResources.getVirtualCores(), usedResource.getMemorySize(),
      usedResource.getVirtualCores());

  // ************ check user metrics ***********
  QueueMetrics userMetrics =
      queueMetrics.getUserMetrics(app.getUser());
  assertMetrics(userMetrics, 1, 0, 1, 0, 2, availableResources.getMemorySize(),
      availableResources.getVirtualCores(), usedResource.getMemorySize(),
      usedResource.getVirtualCores());
}
 
开发者ID:hopshadoop,项目名称:hops,代码行数:29,代码来源:TestWorkPreservingRMRestart.java

示例7: checkFSQueue

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerApplication; //导入方法依赖的package包/类
private void checkFSQueue(ResourceManager rm,
    SchedulerApplication  schedulerApp, Resource usedResources,
    Resource availableResources) throws Exception {
  // waiting for RM's scheduling apps
  int retry = 0;
  Resource assumedFairShare = Resource.newInstance(8192, 8);
  while (true) {
    Thread.sleep(100);
    if (assumedFairShare.equals(((FairScheduler)rm.getResourceScheduler())
        .getQueueManager().getRootQueue().getFairShare())) {
      break;
    }
    retry++;
    if (retry > 30) {
      Assert.fail("Apps are not scheduled within assumed timeout");
    }
  }

  FairScheduler scheduler = (FairScheduler) rm.getResourceScheduler();
  FSParentQueue root = scheduler.getQueueManager().getRootQueue();
  // ************ check cluster used Resources ********
  assertTrue(root.getPolicy() instanceof DominantResourceFairnessPolicy);
  assertEquals(usedResources,root.getResourceUsage());

  // ************ check app headroom ****************
  FSAppAttempt schedulerAttempt =
      (FSAppAttempt) schedulerApp.getCurrentAppAttempt();
  assertEquals(availableResources, schedulerAttempt.getHeadroom());

  // ************ check queue metrics ****************
  QueueMetrics queueMetrics = scheduler.getRootQueueMetrics();
  assertMetrics(queueMetrics, 1, 0, 1, 0, 2, availableResources.getMemorySize(),
      availableResources.getVirtualCores(), usedResources.getMemorySize(),
      usedResources.getVirtualCores());
}
 
开发者ID:hopshadoop,项目名称:hops,代码行数:36,代码来源:TestWorkPreservingRMRestart.java

示例8: getApplicationAttempt

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerApplication; //导入方法依赖的package包/类
@VisibleForTesting
FiCaSchedulerApp getApplicationAttempt(ApplicationAttemptId applicationAttemptId) {
  SchedulerApplication app =
      applications.get(applicationAttemptId.getApplicationId());
  if (app != null) {
    return (FiCaSchedulerApp) app.getCurrentAppAttempt();
  }
  return null;
}
 
开发者ID:Seagate,项目名称:hadoop-on-lustre2,代码行数:10,代码来源:FifoScheduler.java

示例9: getCurrentAttemptForContainer

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerApplication; //导入方法依赖的package包/类
private FiCaSchedulerApp getCurrentAttemptForContainer(
    ContainerId containerId) {
  SchedulerApplication app =
      applications.get(containerId.getApplicationAttemptId()
        .getApplicationId());
  if (app != null) {
    return (FiCaSchedulerApp) app.getCurrentAppAttempt();
  }
  return null;
}
 
开发者ID:Seagate,项目名称:hadoop-on-lustre2,代码行数:11,代码来源:FifoScheduler.java

示例10: getCurrentAttemptForContainer

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerApplication; //导入方法依赖的package包/类
private FSSchedulerApp getCurrentAttemptForContainer(
    ContainerId containerId) {
  SchedulerApplication app =
      applications.get(containerId.getApplicationAttemptId()
        .getApplicationId());
  if (app != null) {
    return (FSSchedulerApp) app.getCurrentAppAttempt();
  }
  return null;
}
 
开发者ID:Seagate,项目名称:hadoop-on-lustre2,代码行数:11,代码来源:FairScheduler.java

示例11: getSchedulerApp

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerApplication; //导入方法依赖的package包/类
public FSSchedulerApp getSchedulerApp(ApplicationAttemptId appAttemptId) {
  SchedulerApplication app =
      applications.get(appAttemptId.getApplicationId());
  if (app != null) {
    return (FSSchedulerApp) app.getCurrentAppAttempt();
  }
  return null;
}
 
开发者ID:Seagate,项目名称:hadoop-on-lustre2,代码行数:9,代码来源:FairScheduler.java

示例12: moveApplication

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerApplication; //导入方法依赖的package包/类
@Override
public synchronized String moveApplication(ApplicationId appId,
    String queueName) throws YarnException {
  SchedulerApplication app = applications.get(appId);
  if (app == null) {
    throw new YarnException("App to be moved " + appId + " not found.");
  }
  FSSchedulerApp attempt = (FSSchedulerApp) app.getCurrentAppAttempt();
  // To serialize with FairScheduler#allocate, synchronize on app attempt
  synchronized (attempt) {
    FSLeafQueue oldQueue = (FSLeafQueue) app.getQueue();
    FSLeafQueue targetQueue = queueMgr.getLeafQueue(queueName, false);
    if (targetQueue == null) {
      throw new YarnException("Target queue " + queueName
          + " not found or is not a leaf queue.");
    }
    if (targetQueue == oldQueue) {
      return oldQueue.getQueueName();
    }
    
    if (oldQueue.getRunnableAppSchedulables().contains(
        attempt.getAppSchedulable())) {
      verifyMoveDoesNotViolateConstraints(attempt, oldQueue, targetQueue);
    }
    
    executeMove(app, attempt, oldQueue, targetQueue);
    return targetQueue.getQueueName();
  }
}
 
开发者ID:Seagate,项目名称:hadoop-on-lustre2,代码行数:30,代码来源:FairScheduler.java

示例13: getApplicationAttempt

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerApplication; //导入方法依赖的package包/类
@Lock(Lock.NoLock.class)
@VisibleForTesting
public FiCaSchedulerApp getApplicationAttempt(
    ApplicationAttemptId applicationAttemptId) {
  SchedulerApplication app =
      applications.get(applicationAttemptId.getApplicationId());
  if (app != null) {
    return (FiCaSchedulerApp) app.getCurrentAppAttempt();
  }
  return null;
}
 
开发者ID:Seagate,项目名称:hadoop-on-lustre2,代码行数:12,代码来源:CapacityScheduler.java

示例14: getCurrentAttemptForContainer

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerApplication; //导入方法依赖的package包/类
@VisibleForTesting
public FiCaSchedulerApp getCurrentAttemptForContainer(
    ContainerId containerId) {
  SchedulerApplication app =
      applications.get(containerId.getApplicationAttemptId()
        .getApplicationId());
  if (app != null) {
    return (FiCaSchedulerApp) app.getCurrentAppAttempt();
  }
  return null;
}
 
开发者ID:Seagate,项目名称:hadoop-on-lustre2,代码行数:12,代码来源:CapacityScheduler.java

示例15: updateApplicationPriority

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerApplication; //导入方法依赖的package包/类
@Override
public void updateApplicationPriority(Priority newPriority,
    ApplicationId applicationId) throws YarnException {
  Priority appPriority = null;
  SchedulerApplication<FiCaSchedulerApp> application = applications
      .get(applicationId);

  if (application == null) {
    throw new YarnException("Application '" + applicationId
        + "' is not present, hence could not change priority.");
  }

  RMApp rmApp = rmContext.getRMApps().get(applicationId);
  appPriority = checkAndGetApplicationPriority(newPriority, rmApp.getUser(),
      rmApp.getQueue(), applicationId);

  if (application.getPriority().equals(appPriority)) {
    return;
  }

  // Update new priority in Submission Context to keep track in HA
  rmApp.getApplicationSubmissionContext().setPriority(appPriority);

  // Update to state store
  ApplicationStateData appState =
      ApplicationStateData.newInstance(rmApp.getSubmitTime(),
          rmApp.getStartTime(), rmApp.getApplicationSubmissionContext(),
          rmApp.getUser(), rmApp.getCallerContext());
  rmContext.getStateStore().updateApplicationStateSynchronously(appState,
      false);

  // As we use iterator over a TreeSet for OrderingPolicy, once we change
  // priority then reinsert back to make order correct.
  LeafQueue queue = (LeafQueue) getQueue(rmApp.getQueue());
  synchronized (queue) {
    FiCaSchedulerApp attempt = application.getCurrentAppAttempt();
    boolean isActive =
        queue.getOrderingPolicy().removeSchedulableEntity(attempt);
    if (!isActive) {
      queue.getPendingAppsOrderingPolicy().removeSchedulableEntity(attempt);
    }
    // Update new priority in SchedulerApplication
    application.setPriority(appPriority);
    if (isActive) {
      queue.getOrderingPolicy().addSchedulableEntity(attempt);
    } else {
      queue.getPendingAppsOrderingPolicy().addSchedulableEntity(attempt);
    }
  }

  // Update the changed application state to timeline server
  rmContext.getSystemMetricsPublisher().appUpdated(rmApp,
      System.currentTimeMillis());

  LOG.info("Priority '" + appPriority + "' is updated in queue :"
      + rmApp.getQueue() + " for application: " + applicationId
      + " for the user: " + rmApp.getUser());
}
 
开发者ID:hopshadoop,项目名称:hops,代码行数:59,代码来源:CapacityScheduler.java


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