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


Java ApplicationSubmissionContext.getUnmanagedAM方法代码示例

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


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

示例1: SchedulerApplicationAttempt

import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext; //导入方法依赖的package包/类
public SchedulerApplicationAttempt(ApplicationAttemptId applicationAttemptId, 
    String user, Queue queue, ActiveUsersManager activeUsersManager,
    RMContext rmContext) {
  Preconditions.checkNotNull(rmContext, "RMContext should not be null");
  this.rmContext = rmContext;
  this.appSchedulingInfo = 
      new AppSchedulingInfo(applicationAttemptId, user, queue,  
          activeUsersManager, rmContext.getEpoch());
  this.queue = queue;
  this.pendingRelease = new HashSet<ContainerId>();
  this.attemptId = applicationAttemptId;
  if (rmContext.getRMApps() != null &&
      rmContext.getRMApps()
          .containsKey(applicationAttemptId.getApplicationId())) {
    ApplicationSubmissionContext appSubmissionContext =
        rmContext.getRMApps().get(applicationAttemptId.getApplicationId())
            .getApplicationSubmissionContext();
    if (appSubmissionContext != null) {
      unmanagedAM = appSubmissionContext.getUnmanagedAM();
      this.logAggregationContext =
          appSubmissionContext.getLogAggregationContext();
    }
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:25,代码来源:SchedulerApplicationAttempt.java

示例2: testCreateAppFinished

import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext; //导入方法依赖的package包/类
protected RMApp testCreateAppFinished(
    ApplicationSubmissionContext submissionContext,
    String diagnostics) throws IOException {
  // unmanaged AMs don't use the FINISHING state
  RMApp application = null;
  if (submissionContext != null && submissionContext.getUnmanagedAM()) {
    application = testCreateAppRunning(submissionContext);
  } else {
    application = testCreateAppFinishing(submissionContext);
  }
  // RUNNING/FINISHING => FINISHED event RMAppEventType.ATTEMPT_FINISHED
  RMAppEvent finishedEvent = new RMAppFinishedAttemptEvent(
      application.getApplicationId(), diagnostics);
  application.handle(finishedEvent);
  assertAppState(RMAppState.FINISHED, application);
  assertTimesAtFinish(application);
  // finished without a proper unregister implies failed
  assertFinalAppStatus(FinalApplicationStatus.FAILED, application);
  Assert.assertTrue("Finished app missing diagnostics",
      application.getDiagnostics().indexOf(diagnostics) != -1);
  return application;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:23,代码来源:TestRMAppTransitions.java

示例3: SchedulerApplicationAttempt

import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext; //导入方法依赖的package包/类
public SchedulerApplicationAttempt(ApplicationAttemptId applicationAttemptId, 
    String user, Queue queue, ActiveUsersManager activeUsersManager,
    RMContext rmContext) {
  Preconditions.checkNotNull(rmContext, "RMContext should not be null");
  this.rmContext = rmContext;
  this.appSchedulingInfo = 
      new AppSchedulingInfo(applicationAttemptId, user, queue,  
          activeUsersManager, rmContext.getEpoch(), attemptResourceUsage);
  this.queue = queue;
  this.pendingRelease = new HashSet<ContainerId>();
  this.attemptId = applicationAttemptId;
  if (rmContext.getRMApps() != null &&
      rmContext.getRMApps()
          .containsKey(applicationAttemptId.getApplicationId())) {
    RMApp rmApp = rmContext.getRMApps().get(applicationAttemptId.getApplicationId());
    ApplicationSubmissionContext appSubmissionContext =
        rmApp
            .getApplicationSubmissionContext();
    appAttempt = rmApp.getCurrentAppAttempt();
    if (appSubmissionContext != null) {
      unmanagedAM = appSubmissionContext.getUnmanagedAM();
      this.logAggregationContext =
          appSubmissionContext.getLogAggregationContext();
    }
  }
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:27,代码来源:SchedulerApplicationAttempt.java

示例4: testCreateAppFinished

import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext; //导入方法依赖的package包/类
protected RMApp testCreateAppFinished(
    ApplicationSubmissionContext submissionContext,
    String diagnostics) throws IOException {
  // unmanaged AMs don't use the FINISHING state
  RMApp application = null;
  if (submissionContext != null && submissionContext.getUnmanagedAM()) {
    application = testCreateAppRunning(submissionContext);
  } else {
    application = testCreateAppFinishing(submissionContext);
  }
  // RUNNING/FINISHING => FINISHED event RMAppEventType.ATTEMPT_FINISHED
  RMAppEvent finishedEvent = new RMAppEvent(application.getApplicationId(),
      RMAppEventType.ATTEMPT_FINISHED, diagnostics);
  application.handle(finishedEvent);
  assertAppState(RMAppState.FINISHED, application);
  assertTimesAtFinish(application);
  // finished without a proper unregister implies failed
  assertFinalAppStatus(FinalApplicationStatus.FAILED, application);
  Assert.assertTrue("Finished app missing diagnostics",
      application.getDiagnostics().indexOf(diagnostics) != -1);
  return application;
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:23,代码来源:TestRMAppTransitions.java

示例5: transition

import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext; //导入方法依赖的package包/类
@Override
public RMAppAttemptState transition(RMAppAttemptImpl appAttempt,
    RMAppAttemptEvent event) {
  ApplicationSubmissionContext subCtx = appAttempt.submissionContext;
  if (!subCtx.getUnmanagedAM()) {
    // Need reset #containers before create new attempt, because this request
    // will be passed to scheduler, and scheduler will deduct the number after
    // AM container allocated
    
    // Currently, following fields are all hard code,
    // TODO: change these fields when we want to support
    // priority/resource-name/relax-locality specification for AM containers
    // allocation.
    appAttempt.amReq.setNumContainers(1);
    appAttempt.amReq.setPriority(AM_CONTAINER_PRIORITY);
    appAttempt.amReq.setResourceName(ResourceRequest.ANY);
    appAttempt.amReq.setRelaxLocality(true);
    
    // AM resource has been checked when submission
    Allocation amContainerAllocation =
        appAttempt.scheduler.allocate(appAttempt.applicationAttemptId,
            Collections.singletonList(appAttempt.amReq),
            EMPTY_CONTAINER_RELEASE_LIST, null, null);
    if (amContainerAllocation != null
        && amContainerAllocation.getContainers() != null) {
      assert (amContainerAllocation.getContainers().size() == 0);
    }
    return RMAppAttemptState.SCHEDULED;
  } else {
    // save state and then go to LAUNCHED state
    appAttempt.storeAttempt();
    return RMAppAttemptState.LAUNCHED_UNMANAGED_SAVING;
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:35,代码来源:RMAppAttemptImpl.java

示例6: validateAndCreateResourceRequest

import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext; //导入方法依赖的package包/类
private ResourceRequest validateAndCreateResourceRequest(
    ApplicationSubmissionContext submissionContext, boolean isRecovery)
    throws InvalidResourceRequestException {
  // Validation of the ApplicationSubmissionContext needs to be completed
  // here. Only those fields that are dependent on RM's configuration are
  // checked here as they have to be validated whether they are part of new
  // submission or just being recovered.

  // Check whether AM resource requirements are within required limits
  if (!submissionContext.getUnmanagedAM()) {
    ResourceRequest amReq = submissionContext.getAMContainerResourceRequest();
    if (amReq == null) {
      amReq = BuilderUtils
          .newResourceRequest(RMAppAttemptImpl.AM_CONTAINER_PRIORITY,
              ResourceRequest.ANY, submissionContext.getResource(), 1);
    }

    // set label expression for AM container
    if (null == amReq.getNodeLabelExpression()) {
      amReq.setNodeLabelExpression(submissionContext
          .getNodeLabelExpression());
    }

    try {
      SchedulerUtils.normalizeAndValidateRequest(amReq,
          scheduler.getMaximumResourceCapability(),
          submissionContext.getQueue(), scheduler, isRecovery, rmContext);
    } catch (InvalidResourceRequestException e) {
      LOG.warn("RM app submission failed in validating AM resource request"
          + " for application " + submissionContext.getApplicationId(), e);
      throw e;
    }

    SchedulerUtils.normalizeRequest(amReq, scheduler.getResourceCalculator(),
        scheduler.getClusterResource(),
        scheduler.getMinimumResourceCapability(),
        scheduler.getMaximumResourceCapability(),
        scheduler.getMinimumResourceCapability());
    return amReq;
  }
  
  return null;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:44,代码来源:RMAppManager.java

示例7: transition

import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext; //导入方法依赖的package包/类
@Override
public RMAppAttemptState transition(RMAppAttemptImpl appAttempt,
    RMAppAttemptEvent event) {
  ApplicationSubmissionContext subCtx = appAttempt.submissionContext;
  if (!subCtx.getUnmanagedAM()) {
    // Need reset #containers before create new attempt, because this request
    // will be passed to scheduler, and scheduler will deduct the number after
    // AM container allocated
    
    // Currently, following fields are all hard code,
    // TODO: change these fields when we want to support
    // priority/resource-name/relax-locality specification for AM containers
    // allocation.
    appAttempt.amReq.setNumContainers(1);
    appAttempt.amReq.setPriority(AM_CONTAINER_PRIORITY);
    appAttempt.amReq.setResourceName(ResourceRequest.ANY);
    appAttempt.amReq.setRelaxLocality(true);

    appAttempt.getAMBlacklist().refreshNodeHostCount(
        appAttempt.scheduler.getNumClusterNodes());

    BlacklistUpdates amBlacklist = appAttempt.getAMBlacklist()
        .getBlacklistUpdates();
    if (LOG.isDebugEnabled()) {
      LOG.debug("Using blacklist for AM: additions(" +
          amBlacklist.getAdditions() + ") and removals(" +
          amBlacklist.getRemovals() + ")");
    }
    // AM resource has been checked when submission
    Allocation amContainerAllocation =
        appAttempt.scheduler.allocate(
            appAttempt.applicationAttemptId,
            Collections.singletonList(appAttempt.amReq),
            EMPTY_CONTAINER_RELEASE_LIST,
            amBlacklist.getAdditions(),
            amBlacklist.getRemovals(), null, null);
    if (amContainerAllocation != null
        && amContainerAllocation.getContainers() != null) {
      assert (amContainerAllocation.getContainers().size() == 0);
    }
    return RMAppAttemptState.SCHEDULED;
  } else {
    // save state and then go to LAUNCHED state
    appAttempt.storeAttempt();
    return RMAppAttemptState.LAUNCHED_UNMANAGED_SAVING;
  }
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:48,代码来源:RMAppAttemptImpl.java


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