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


Java ApplicationSubmissionContext.getQueue方法代码示例

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


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

示例1: submitApplication

import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext; //导入方法依赖的package包/类
@Override
protected void submitApplication(
    ApplicationSubmissionContext submissionContext, long submitTime,
    String user) throws YarnException {
  //Do nothing, just add the application to RMContext
  RMAppImpl application =
      new RMAppImpl(submissionContext.getApplicationId(), this.rmContext,
          this.conf, submissionContext.getApplicationName(), user,
          submissionContext.getQueue(), submissionContext,
          this.rmContext.getScheduler(),
          this.rmContext.getApplicationMasterService(),
          submitTime, submissionContext.getApplicationType(),
          submissionContext.getApplicationTags(), null);
  this.rmContext.getRMApps().put(submissionContext.getApplicationId(),
      application);
  //Do not send RMAppEventType.START event
  //so the state of Application will not reach to NEW_SAVING state.
}
 
开发者ID:naver,项目名称:hadoop,代码行数:19,代码来源:RMHATestBase.java

示例2: createAndPopulateNewRMApp

import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext; //导入方法依赖的package包/类
private RMAppImpl createAndPopulateNewRMApp(
    ApplicationSubmissionContext submissionContext, long submitTime,
    String user, boolean isRecovery) throws YarnException {
  ApplicationId applicationId = submissionContext.getApplicationId();
  ResourceRequest amReq =
      validateAndCreateResourceRequest(submissionContext, isRecovery);

  // Create RMApp
  RMAppImpl application =
      new RMAppImpl(applicationId, rmContext, this.conf,
          submissionContext.getApplicationName(), user,
          submissionContext.getQueue(),
          submissionContext, this.scheduler, this.masterService,
          submitTime, submissionContext.getApplicationType(),
          submissionContext.getApplicationTags(), amReq);

  // Concurrent app submissions with same applicationId will fail here
  // Concurrent app submissions with different applicationIds will not
  // influence each other
  if (rmContext.getRMApps().putIfAbsent(applicationId, application) !=
      null) {
    String message = "Application with id " + applicationId
        + " is already present! Cannot add a duplicate!";
    LOG.warn(message);
    throw new YarnException(message);
  }
  // Inform the ACLs Manager
  this.applicationACLsManager.addApplication(applicationId,
      submissionContext.getAMContainerSpec().getApplicationACLs());
  String appViewACLs = submissionContext.getAMContainerSpec()
      .getApplicationACLs().get(ApplicationAccessType.VIEW_APP);
  rmContext.getSystemMetricsPublisher().appACLsUpdated(
      application, appViewACLs, System.currentTimeMillis());
  return application;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:36,代码来源:RMAppManager.java

示例3: testRecoverApplication

import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext; //导入方法依赖的package包/类
public void testRecoverApplication(ApplicationStateData appState,
    RMState rmState)
    throws Exception {
  ApplicationSubmissionContext submissionContext =
      appState.getApplicationSubmissionContext();
  RMAppImpl application =
      new RMAppImpl(
          appState.getApplicationSubmissionContext().getApplicationId(),
          rmContext, conf,
          submissionContext.getApplicationName(), null,
          submissionContext.getQueue(), submissionContext, null, null,
          appState.getSubmitTime(), submissionContext.getApplicationType(),
          submissionContext.getApplicationTags(),
          BuilderUtils.newResourceRequest(
              RMAppAttemptImpl.AM_CONTAINER_PRIORITY, ResourceRequest.ANY,
              submissionContext.getResource(), 1));
  Assert.assertEquals(RMAppState.NEW, application.getState());

  RMAppEvent recoverEvent =
      new RMAppRecoverEvent(application.getApplicationId(), rmState);
  // Trigger RECOVER event.
  application.handle(recoverEvent);
  // Application final status looked from recoveredFinalStatus
  Assert.assertTrue("Application is not in recoveredFinalStatus.",
      RMAppImpl.isAppInFinalState(application));

  rmDispatcher.await();
  RMAppState finalState = appState.getState();
  Assert.assertEquals("Application is not in finalState.", finalState,
      application.getState());
}
 
开发者ID:naver,项目名称:hadoop,代码行数:32,代码来源:TestRMAppTransitions.java

示例4: placeApplication

import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext; //导入方法依赖的package包/类
public void placeApplication(ApplicationSubmissionContext asc, String user)
    throws YarnException {
  try {
    readLock.lock();
    if (null == rules || rules.isEmpty()) {
      return;
    }
    
    String newQueueName = null;
    for (PlacementRule rule : rules) {
      newQueueName = rule.getQueueForApp(asc, user);
      if (newQueueName != null) {
        break;
      }
    }
    
    // Failed to get where to place application
    if (null == newQueueName && null == asc.getQueue()) {
      String msg = "Failed to get where to place application="
          + asc.getApplicationId();
      LOG.error(msg);
      throw new YarnException(msg);
    }
    
    // Set it to ApplicationSubmissionContext
    if (!StringUtils.equals(asc.getQueue(), newQueueName)) {
      LOG.info("Placed application=" + asc.getApplicationId() + " to queue="
          + newQueueName + ", original queue=" + asc.getQueue());
      asc.setQueue(newQueueName);
    }
  } finally {
    readLock.unlock();
  }
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:35,代码来源:PlacementManager.java

示例5: getQueueForApp

import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext; //导入方法依赖的package包/类
@Override
public String getQueueForApp(ApplicationSubmissionContext asc, String user)
    throws YarnException {
  String queueName = asc.getQueue();
  ApplicationId applicationId = asc.getApplicationId();
  if (mappings != null && mappings.size() > 0) {
    try {
      String mappedQueue = getMappedQueue(user);
      if (mappedQueue != null) {
        // We have a mapping, should we use it?
        if (queueName.equals(YarnConfiguration.DEFAULT_QUEUE_NAME)
            || overrideWithQueueMappings) {
          LOG.info("Application " + applicationId + " user " + user
              + " mapping [" + queueName + "] to [" + mappedQueue
              + "] override " + overrideWithQueueMappings);
          return mappedQueue;
        }
      }
    } catch (IOException ioex) {
      String message = "Failed to submit application " + applicationId +
          " submitted by user " + user + " reason: " + ioex.getMessage();
      throw new YarnException(message);
    }
  }
  
  return queueName;
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:28,代码来源:UserGroupMappingPlacementRule.java

示例6: testRecoverApplication

import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext; //导入方法依赖的package包/类
public void testRecoverApplication(ApplicationStateData appState,
    RMState rmState)
    throws Exception {
  ApplicationSubmissionContext submissionContext =
      appState.getApplicationSubmissionContext();
  RMAppImpl application =
      new RMAppImpl(
          appState.getApplicationSubmissionContext().getApplicationId(),
          rmContext, conf,
          submissionContext.getApplicationName(), null,
          submissionContext.getQueue(), submissionContext, scheduler, null,
          appState.getSubmitTime(), submissionContext.getApplicationType(),
          submissionContext.getApplicationTags(),
          BuilderUtils.newResourceRequest(
              RMAppAttemptImpl.AM_CONTAINER_PRIORITY, ResourceRequest.ANY,
              submissionContext.getResource(), 1));
  Assert.assertEquals(RMAppState.NEW, application.getState());

  RMAppEvent recoverEvent =
      new RMAppRecoverEvent(application.getApplicationId(), rmState);
  // Trigger RECOVER event.
  application.handle(recoverEvent);
  // Application final status looked from recoveredFinalStatus
  Assert.assertTrue("Application is not in recoveredFinalStatus.",
      RMAppImpl.isAppInFinalState(application));

  rmDispatcher.await();
  RMAppState finalState = appState.getState();
  Assert.assertEquals("Application is not in finalState.", finalState,
      application.getState());
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:32,代码来源:TestRMAppTransitions.java

示例7: submitApplication

import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext; //导入方法依赖的package包/类
@Override
public SubmitApplicationResponse submitApplication(
    SubmitApplicationRequest request) throws YarnException {
  ApplicationSubmissionContext submissionContext = request
      .getApplicationSubmissionContext();
  ApplicationId applicationId = submissionContext.getApplicationId();

  // ApplicationSubmissionContext needs to be validated for safety - only
  // those fields that are independent of the RM's configuration will be
  // checked here, those that are dependent on RM configuration are validated
  // in RMAppManager.

  String user = null;
  try {
    // Safety
    user = UserGroupInformation.getCurrentUser().getShortUserName();
  } catch (IOException ie) {
    LOG.warn("Unable to get the current user.", ie);
    RMAuditLogger.logFailure(user, AuditConstants.SUBMIT_APP_REQUEST,
        ie.getMessage(), "ClientRMService",
        "Exception in submitting application", applicationId);
    throw RPCUtil.getRemoteException(ie);
  }

  // Check whether app has already been put into rmContext,
  // If it is, simply return the response
  if (rmContext.getRMApps().get(applicationId) != null) {
    LOG.info("This is an earlier submitted application: " + applicationId);
    return SubmitApplicationResponse.newInstance();
  }

  if (submissionContext.getQueue() == null) {
    submissionContext.setQueue(YarnConfiguration.DEFAULT_QUEUE_NAME);
  }
  if (submissionContext.getApplicationName() == null) {
    submissionContext.setApplicationName(
        YarnConfiguration.DEFAULT_APPLICATION_NAME);
  }
  if (submissionContext.getApplicationType() == null) {
    submissionContext
      .setApplicationType(YarnConfiguration.DEFAULT_APPLICATION_TYPE);
  } else {
    if (submissionContext.getApplicationType().length() > YarnConfiguration.APPLICATION_TYPE_LENGTH) {
      submissionContext.setApplicationType(submissionContext
        .getApplicationType().substring(0,
          YarnConfiguration.APPLICATION_TYPE_LENGTH));
    }
  }

  try {
    // call RMAppManager to submit application directly
    rmAppManager.submitApplication(submissionContext,
        System.currentTimeMillis(), user);

    LOG.info("Application with id " + applicationId.getId() + 
        " submitted by user " + user);
    RMAuditLogger.logSuccess(user, AuditConstants.SUBMIT_APP_REQUEST,
        "ClientRMService", applicationId);
  } catch (YarnException e) {
    LOG.info("Exception in submitting application with id " +
        applicationId.getId(), e);
    RMAuditLogger.logFailure(user, AuditConstants.SUBMIT_APP_REQUEST,
        e.getMessage(), "ClientRMService",
        "Exception in submitting application", applicationId);
    throw e;
  }

  SubmitApplicationResponse response = recordFactory
      .newRecordInstance(SubmitApplicationResponse.class);
  return response;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:72,代码来源:ClientRMService.java

示例8: submitApplication

import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext; //导入方法依赖的package包/类
@Override
public SubmitApplicationResponse submitApplication(
    SubmitApplicationRequest request) throws YarnException {
  ApplicationSubmissionContext submissionContext = request
      .getApplicationSubmissionContext();
  ApplicationId applicationId = submissionContext.getApplicationId();
  CallerContext callerContext = CallerContext.getCurrent();

  // ApplicationSubmissionContext needs to be validated for safety - only
  // those fields that are independent of the RM's configuration will be
  // checked here, those that are dependent on RM configuration are validated
  // in RMAppManager.

  String user = null;
  try {
    // Safety
    user = UserGroupInformation.getCurrentUser().getShortUserName();
  } catch (IOException ie) {
    LOG.warn("Unable to get the current user.", ie);
    RMAuditLogger.logFailure(user, AuditConstants.SUBMIT_APP_REQUEST,
        ie.getMessage(), "ClientRMService",
        "Exception in submitting application", applicationId, callerContext);
    throw RPCUtil.getRemoteException(ie);
  }

  // Check whether app has already been put into rmContext,
  // If it is, simply return the response
  if (rmContext.getRMApps().get(applicationId) != null) {
    LOG.info("This is an earlier submitted application: " + applicationId);
    return SubmitApplicationResponse.newInstance();
  }

  if (submissionContext.getQueue() == null) {
    submissionContext.setQueue(YarnConfiguration.DEFAULT_QUEUE_NAME);
  }
  if (submissionContext.getApplicationName() == null) {
    submissionContext.setApplicationName(
        YarnConfiguration.DEFAULT_APPLICATION_NAME);
  }
  if (submissionContext.getApplicationType() == null) {
    submissionContext
      .setApplicationType(YarnConfiguration.DEFAULT_APPLICATION_TYPE);
  } else {
    if (submissionContext.getApplicationType().length() > YarnConfiguration.APPLICATION_TYPE_LENGTH) {
      submissionContext.setApplicationType(submissionContext
        .getApplicationType().substring(0,
          YarnConfiguration.APPLICATION_TYPE_LENGTH));
    }
  }

  try {
    // call RMAppManager to submit application directly
    rmAppManager.submitApplication(submissionContext,
        System.currentTimeMillis(), user);

    LOG.info("Application with id " + applicationId.getId() + 
        " submitted by user " + user);
    RMAuditLogger.logSuccess(user, AuditConstants.SUBMIT_APP_REQUEST,
        "ClientRMService", applicationId, callerContext);
  } catch (YarnException e) {
    LOG.info("Exception in submitting application with id " +
        applicationId.getId(), e);
    RMAuditLogger.logFailure(user, AuditConstants.SUBMIT_APP_REQUEST,
        e.getMessage(), "ClientRMService",
        "Exception in submitting application", applicationId, callerContext);
    throw e;
  }

  SubmitApplicationResponse response = recordFactory
      .newRecordInstance(SubmitApplicationResponse.class);
  return response;
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:73,代码来源:ClientRMService.java

示例9: AppAddedSchedulerEvent

import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext; //导入方法依赖的package包/类
public AppAddedSchedulerEvent(String user,
    ApplicationSubmissionContext submissionContext, boolean isAppRecovering) {
  this(submissionContext.getApplicationId(), submissionContext.getQueue(),
      user, isAppRecovering, submissionContext.getReservationID(),
      submissionContext.getPriority());
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:7,代码来源:AppAddedSchedulerEvent.java

示例10: createAndPopulateNewRMApp

import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext; //导入方法依赖的package包/类
private RMAppImpl createAndPopulateNewRMApp(
    ApplicationSubmissionContext submissionContext, long submitTime,
    String user, boolean isRecovery) throws YarnException {
  // Do queue mapping
  if (!isRecovery) {
    if (rmContext.getQueuePlacementManager() != null) {
      // We only do queue mapping when it's a new application
      rmContext.getQueuePlacementManager().placeApplication(
          submissionContext, user);
    }
  }
  
  ApplicationId applicationId = submissionContext.getApplicationId();
  ResourceRequest amReq =
      validateAndCreateResourceRequest(submissionContext, isRecovery);

  // Verify and get the update application priority and set back to
  // submissionContext
  Priority appPriority = rmContext.getScheduler()
      .checkAndGetApplicationPriority(submissionContext.getPriority(), user,
          submissionContext.getQueue(), applicationId);
  submissionContext.setPriority(appPriority);

  // Create RMApp
  RMAppImpl application = new RMAppImpl(applicationId, rmContext, this.conf,
      submissionContext.getApplicationName(), user,
      submissionContext.getQueue(), submissionContext, this.scheduler,
      this.masterService, submitTime, submissionContext.getApplicationType(),
      submissionContext.getApplicationTags(), amReq);

  // Concurrent app submissions with same applicationId will fail here
  // Concurrent app submissions with different applicationIds will not
  // influence each other
  if (rmContext.getRMApps().putIfAbsent(applicationId, application) !=
      null) {
    String message = "Application with id " + applicationId
        + " is already present! Cannot add a duplicate!";
    LOG.warn(message);
    throw new YarnException(message);
  }
  // Inform the ACLs Manager
  this.applicationACLsManager.addApplication(applicationId,
      submissionContext.getAMContainerSpec().getApplicationACLs());
  String appViewACLs = submissionContext.getAMContainerSpec()
      .getApplicationACLs().get(ApplicationAccessType.VIEW_APP);
  rmContext.getSystemMetricsPublisher().appACLsUpdated(
      application, appViewACLs, System.currentTimeMillis());
  return application;
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:50,代码来源:RMAppManager.java


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