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


Java FiCaSchedulerApp.updateResourceRequests方法代码示例

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


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

示例1: allocate

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.common.fica.FiCaSchedulerApp; //导入方法依赖的package包/类
@Override
public Allocation allocate(
    ApplicationAttemptId applicationAttemptId, List<ResourceRequest> ask,
    List<ContainerId> release, List<String> blacklistAdditions, List<String> blacklistRemovals) {
  FiCaSchedulerApp application = getApplicationAttempt(applicationAttemptId);
  if (application == null) {
    LOG.error("Calling allocate on removed " +
        "or non existant application " + applicationAttemptId);
    return EMPTY_ALLOCATION;
  }

  // Sanity check
  SchedulerUtils.normalizeRequests(ask, resourceCalculator, 
      clusterResource, minimumAllocation, getMaximumResourceCapability());

  // Release containers
  releaseContainers(release, application);

  synchronized (application) {

    // make sure we aren't stopping/removing the application
    // when the allocate comes in
    if (application.isStopped()) {
      LOG.info("Calling allocate on a stopped " +
          "application " + applicationAttemptId);
      return EMPTY_ALLOCATION;
    }

    if (!ask.isEmpty()) {
      LOG.debug("allocate: pre-update" +
          " applicationId=" + applicationAttemptId + 
          " application=" + application);
      application.showRequests();

      // Update application requests
      application.updateResourceRequests(ask);

      LOG.debug("allocate: post-update" +
          " applicationId=" + applicationAttemptId + 
          " application=" + application);
      application.showRequests();

      LOG.debug("allocate:" +
          " applicationId=" + applicationAttemptId + 
          " #ask=" + ask.size());
    }

    application.updateBlacklist(blacklistAdditions, blacklistRemovals);
    ContainersAndNMTokensAllocation allocation =
        application.pullNewlyAllocatedContainersAndNMTokens();
    Resource headroom = application.getHeadroom();
    application.setApplicationHeadroomForMetrics(headroom);
    return new Allocation(allocation.getContainerList(), headroom, null,
        null, null, allocation.getNMTokenList());
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:57,代码来源:FifoScheduler.java

示例2: allocate

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.common.fica.FiCaSchedulerApp; //导入方法依赖的package包/类
@Override
@Lock(Lock.NoLock.class)
public Allocation allocate(ApplicationAttemptId applicationAttemptId,
    List<ResourceRequest> ask, List<ContainerId> release, 
    List<String> blacklistAdditions, List<String> blacklistRemovals) {

  FiCaSchedulerApp application = getApplicationAttempt(applicationAttemptId);
  if (application == null) {
    LOG.info("Calling allocate on removed " +
        "or non existant application " + applicationAttemptId);
    return EMPTY_ALLOCATION;
  }
  
  // Sanity check
  SchedulerUtils.normalizeRequests(
      ask, getResourceCalculator(), getClusterResource(),
      getMinimumResourceCapability(), getMaximumResourceCapability());

  // Release containers
  releaseContainers(release, application);

  synchronized (application) {

    // make sure we aren't stopping/removing the application
    // when the allocate comes in
    if (application.isStopped()) {
      LOG.info("Calling allocate on a stopped " +
          "application " + applicationAttemptId);
      return EMPTY_ALLOCATION;
    }

    if (!ask.isEmpty()) {

      if(LOG.isDebugEnabled()) {
        LOG.debug("allocate: pre-update" +
          " applicationAttemptId=" + applicationAttemptId + 
          " application=" + application);
      }
      application.showRequests();

      // Update application requests
      application.updateResourceRequests(ask);

      LOG.debug("allocate: post-update");
      application.showRequests();
    }

    if(LOG.isDebugEnabled()) {
      LOG.debug("allocate:" +
        " applicationAttemptId=" + applicationAttemptId + 
        " #ask=" + ask.size());
    }

    application.updateBlacklist(blacklistAdditions, blacklistRemovals);

    return application.getAllocation(getResourceCalculator(),
                 clusterResource, getMinimumResourceCapability());
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:60,代码来源:CapacityScheduler.java

示例3: testSingleQueueOneUserMetrics

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.common.fica.FiCaSchedulerApp; //导入方法依赖的package包/类
@Test
public void testSingleQueueOneUserMetrics() throws Exception {

  // Manipulate queue 'a'
  LeafQueue a = stubLeafQueue((LeafQueue)queues.get(B));

  // Users
  final String user_0 = "user_0";

  // Submit applications
  final ApplicationAttemptId appAttemptId_0 = 
      TestUtils.getMockApplicationAttemptId(0, 0); 
  FiCaSchedulerApp app_0 = 
      new FiCaSchedulerApp(appAttemptId_0, user_0, a, 
          mock(ActiveUsersManager.class), spyRMContext);
  a.submitApplicationAttempt(app_0, user_0);

  final ApplicationAttemptId appAttemptId_1 = 
      TestUtils.getMockApplicationAttemptId(1, 0); 
  FiCaSchedulerApp app_1 = 
      new FiCaSchedulerApp(appAttemptId_1, user_0, a, 
          mock(ActiveUsersManager.class), spyRMContext);
  a.submitApplicationAttempt(app_1, user_0);  // same user

  
  // Setup some nodes
  String host_0 = "127.0.0.1";
  FiCaSchedulerNode node_0 = TestUtils.getMockNode(host_0, DEFAULT_RACK, 0,
      8*GB);

  final int numNodes = 1;
  Resource clusterResource = 
      Resources.createResource(numNodes * (8*GB), numNodes * 16);
  when(csContext.getNumClusterNodes()).thenReturn(numNodes);

  // Setup resource-requests
  Priority priority = TestUtils.createMockPriority(1);
  app_0.updateResourceRequests(Collections.singletonList(
          TestUtils.createResourceRequest(ResourceRequest.ANY, 1*GB, 3, true,
              priority, recordFactory)));

  // Start testing...
  
  // Only 1 container
  a.assignContainers(clusterResource, node_0, new ResourceLimits(
      clusterResource));
  assertEquals(
      (int)(node_0.getTotalResource().getMemory() * a.getCapacity()) - (1*GB),
      a.getMetrics().getAvailableMB());
}
 
开发者ID:naver,项目名称:hadoop,代码行数:51,代码来源:TestLeafQueue.java

示例4: testAllocateContainerOnNodeWithoutOffSwitchSpecified

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.common.fica.FiCaSchedulerApp; //导入方法依赖的package包/类
@Test
public void testAllocateContainerOnNodeWithoutOffSwitchSpecified()
    throws Exception {
  // Manipulate queue 'a'
  LeafQueue a = stubLeafQueue((LeafQueue) queues.get(B));

  // Users
  final String user_0 = "user_0";

  // Submit applications
  final ApplicationAttemptId appAttemptId_0 =
      TestUtils.getMockApplicationAttemptId(0, 0);
  FiCaSchedulerApp app_0 =
      new FiCaSchedulerApp(appAttemptId_0, user_0, a,
          mock(ActiveUsersManager.class), spyRMContext);
  a.submitApplicationAttempt(app_0, user_0);

  final ApplicationAttemptId appAttemptId_1 =
      TestUtils.getMockApplicationAttemptId(1, 0);
  FiCaSchedulerApp app_1 =
      new FiCaSchedulerApp(appAttemptId_1, user_0, a,
          mock(ActiveUsersManager.class), spyRMContext);
  a.submitApplicationAttempt(app_1, user_0); // same user

  // Setup some nodes
  String host_0 = "127.0.0.1";
  FiCaSchedulerNode node_0 =
      TestUtils.getMockNode(host_0, DEFAULT_RACK, 0, 8 * GB);

  final int numNodes = 1;
  Resource clusterResource =
      Resources.createResource(numNodes * (8 * GB), numNodes * 16);
  when(csContext.getNumClusterNodes()).thenReturn(numNodes);

  // Setup resource-requests
  Priority priority = TestUtils.createMockPriority(1);
  app_0.updateResourceRequests(Arrays.asList(TestUtils.createResourceRequest(
      "127.0.0.1", 1 * GB, 3, true, priority, recordFactory), TestUtils
      .createResourceRequest(DEFAULT_RACK, 1 * GB, 3, true, priority,
          recordFactory)));

  try {
    a.assignContainers(clusterResource, node_0, 
        new ResourceLimits(clusterResource));
  } catch (NullPointerException e) {
    Assert.fail("NPE when allocating container on node but "
        + "forget to set off-switch request should be handled");
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:50,代码来源:TestLeafQueue.java

示例5: allocate

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.common.fica.FiCaSchedulerApp; //导入方法依赖的package包/类
@Override
public Allocation allocate(ApplicationAttemptId applicationAttemptId,
    List<ResourceRequest> ask, List<ContainerId> release,
    List<String> blacklistAdditions, List<String> blacklistRemovals,
    List<ContainerResourceChangeRequest> increaseRequests,
    List<ContainerResourceChangeRequest> decreaseRequests) {
  FiCaSchedulerApp application = getApplicationAttempt(applicationAttemptId);
  if (application == null) {
    LOG.error("Calling allocate on removed " +
        "or non existant application " + applicationAttemptId);
    return EMPTY_ALLOCATION;
  }

  // Sanity check
  SchedulerUtils.normalizeRequests(ask, resourceCalculator, 
      clusterResource, minimumAllocation, getMaximumResourceCapability());

  // Release containers
  releaseContainers(release, application);

  synchronized (application) {

    // make sure we aren't stopping/removing the application
    // when the allocate comes in
    if (application.isStopped()) {
      LOG.info("Calling allocate on a stopped " +
          "application " + applicationAttemptId);
      return EMPTY_ALLOCATION;
    }

    if (!ask.isEmpty()) {
      LOG.debug("allocate: pre-update" +
          " applicationId=" + applicationAttemptId + 
          " application=" + application);
      application.showRequests();

      // Update application requests
      application.updateResourceRequests(ask);

      LOG.debug("allocate: post-update" +
          " applicationId=" + applicationAttemptId + 
          " application=" + application);
      application.showRequests();

      LOG.debug("allocate:" +
          " applicationId=" + applicationAttemptId +
          " #ask=" + ask.size());
    }

    if (application.isWaitingForAMContainer()) {
      // Allocate is for AM and update AM blacklist for this
      application.updateAMBlacklist(
          blacklistAdditions, blacklistRemovals);
    } else {
      application.updateBlacklist(blacklistAdditions, blacklistRemovals);
    }

    Resource headroom = application.getHeadroom();
    application.setApplicationHeadroomForMetrics(headroom);
    return new Allocation(application.pullNewlyAllocatedContainers(),
        headroom, null, null, null, application.pullUpdatedNMTokens());
  }
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:64,代码来源:FifoScheduler.java

示例6: testSingleQueueOneUserMetrics

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.common.fica.FiCaSchedulerApp; //导入方法依赖的package包/类
@Test
public void testSingleQueueOneUserMetrics() throws Exception {

  // Manipulate queue 'a'
  LeafQueue a = stubLeafQueue((LeafQueue)queues.get(B));

  // Users
  final String user_0 = "user_0";

  // Submit applications
  final ApplicationAttemptId appAttemptId_0 = 
      TestUtils.getMockApplicationAttemptId(0, 0); 
  FiCaSchedulerApp app_0 = 
      new FiCaSchedulerApp(appAttemptId_0, user_0, a, 
          mock(ActiveUsersManager.class), spyRMContext);
  a.submitApplicationAttempt(app_0, user_0);

  final ApplicationAttemptId appAttemptId_1 = 
      TestUtils.getMockApplicationAttemptId(1, 0); 
  FiCaSchedulerApp app_1 = 
      new FiCaSchedulerApp(appAttemptId_1, user_0, a, 
          mock(ActiveUsersManager.class), spyRMContext);
  a.submitApplicationAttempt(app_1, user_0);  // same user

  
  // Setup some nodes
  String host_0 = "127.0.0.1";
  FiCaSchedulerNode node_0 = TestUtils.getMockNode(host_0, DEFAULT_RACK, 0,
      8*GB);

  final int numNodes = 1;
  Resource clusterResource = 
      Resources.createResource(numNodes * (8*GB), numNodes * 16);
  when(csContext.getNumClusterNodes()).thenReturn(numNodes);

  // Setup resource-requests
  Priority priority = TestUtils.createMockPriority(1);
  app_0.updateResourceRequests(Collections.singletonList(
          TestUtils.createResourceRequest(ResourceRequest.ANY, 1*GB, 3, true,
              priority, recordFactory)));

  // Start testing...
  
  // Only 1 container
  a.assignContainers(clusterResource, node_0, new ResourceLimits(
      clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
  assertEquals(
      (int)(node_0.getTotalResource().getMemory() * a.getCapacity()) - (1*GB),
      a.getMetrics().getAvailableMB());
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:51,代码来源:TestLeafQueue.java

示例7: testAllocateContainerOnNodeWithoutOffSwitchSpecified

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.common.fica.FiCaSchedulerApp; //导入方法依赖的package包/类
@Test
public void testAllocateContainerOnNodeWithoutOffSwitchSpecified()
    throws Exception {
  // Manipulate queue 'a'
  LeafQueue a = stubLeafQueue((LeafQueue) queues.get(B));

  // Users
  final String user_0 = "user_0";

  // Submit applications
  final ApplicationAttemptId appAttemptId_0 =
      TestUtils.getMockApplicationAttemptId(0, 0);
  FiCaSchedulerApp app_0 =
      new FiCaSchedulerApp(appAttemptId_0, user_0, a,
          mock(ActiveUsersManager.class), spyRMContext);
  a.submitApplicationAttempt(app_0, user_0);

  final ApplicationAttemptId appAttemptId_1 =
      TestUtils.getMockApplicationAttemptId(1, 0);
  FiCaSchedulerApp app_1 =
      new FiCaSchedulerApp(appAttemptId_1, user_0, a,
          mock(ActiveUsersManager.class), spyRMContext);
  a.submitApplicationAttempt(app_1, user_0); // same user

  // Setup some nodes
  String host_0 = "127.0.0.1";
  FiCaSchedulerNode node_0 =
      TestUtils.getMockNode(host_0, DEFAULT_RACK, 0, 8 * GB);

  final int numNodes = 1;
  Resource clusterResource =
      Resources.createResource(numNodes * (8 * GB), numNodes * 16);
  when(csContext.getNumClusterNodes()).thenReturn(numNodes);

  // Setup resource-requests
  Priority priority = TestUtils.createMockPriority(1);
  app_0.updateResourceRequests(Arrays.asList(TestUtils.createResourceRequest(
      "127.0.0.1", 1 * GB, 3, true, priority, recordFactory), TestUtils
      .createResourceRequest(DEFAULT_RACK, 1 * GB, 3, true, priority,
          recordFactory)));

  try {
    a.assignContainers(clusterResource, node_0, 
        new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
  } catch (NullPointerException e) {
    Assert.fail("NPE when allocating container on node but "
        + "forget to set off-switch request should be handled");
  }
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:50,代码来源:TestLeafQueue.java

示例8: testFifoAssignment

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.common.fica.FiCaSchedulerApp; //导入方法依赖的package包/类
@Test
  public void testFifoAssignment() throws Exception {

    LeafQueue a = stubLeafQueue((LeafQueue)queues.get(A));
    
    a.setOrderingPolicy(new FifoOrderingPolicy<FiCaSchedulerApp>());
    a.setPendingAppsOrderingPolicy(new FifoOrderingPolicy<FiCaSchedulerApp>());

    String host_0_0 = "127.0.0.1";
    String rack_0 = "rack_0";
    FiCaSchedulerNode node_0_0 = TestUtils.getMockNode(host_0_0, rack_0, 0, 16*GB);
    
    final int numNodes = 4;
    Resource clusterResource = Resources.createResource(
        numNodes * (16*GB), numNodes * 16);
    when(csContext.getNumClusterNodes()).thenReturn(numNodes);

    String user_0 = "user_0";
    
    final ApplicationAttemptId appAttemptId_0 = 
        TestUtils.getMockApplicationAttemptId(0, 0); 
    FiCaSchedulerApp app_0 = 
        spy(new FiCaSchedulerApp(appAttemptId_0, user_0, a, 
            mock(ActiveUsersManager.class), spyRMContext, Priority.newInstance(3)));
    a.submitApplicationAttempt(app_0, user_0);
    
    final ApplicationAttemptId appAttemptId_1 = 
        TestUtils.getMockApplicationAttemptId(1, 0); 
    FiCaSchedulerApp app_1 = 
        spy(new FiCaSchedulerApp(appAttemptId_1, user_0, a, 
            mock(ActiveUsersManager.class), spyRMContext, Priority.newInstance(5)));
    a.submitApplicationAttempt(app_1, user_0);
 
    Priority priority = TestUtils.createMockPriority(1);
    List<ResourceRequest> app_0_requests_0 = new ArrayList<ResourceRequest>();
    List<ResourceRequest> app_1_requests_0 = new ArrayList<ResourceRequest>();
    
    app_0_requests_0.clear();
    app_0_requests_0.add(
        TestUtils.createResourceRequest(ResourceRequest.ANY, 2*GB, 1, 
            true, priority, recordFactory));
    app_0.updateResourceRequests(app_0_requests_0);
    
    app_1_requests_0.clear();
    app_1_requests_0.add(
        TestUtils.createResourceRequest(ResourceRequest.ANY, 1*GB, 1, 
            true, priority, recordFactory));
    app_1.updateResourceRequests(app_1_requests_0);

    // app_1 will get containers as it has high priority
    a.assignContainers(clusterResource, node_0_0, new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
    Assert.assertEquals(1*GB, app_1.getCurrentConsumption().getMemory());
    a.assignContainers(clusterResource, node_0_0, new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
    Assert.assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());

    app_0_requests_0.clear();
    app_0_requests_0.add(
        TestUtils.createResourceRequest(ResourceRequest.ANY, 1*GB, 1, 
            true, priority, recordFactory));
    app_0.updateResourceRequests(app_0_requests_0);

    app_1_requests_0.clear();
    app_1_requests_0.add(
        TestUtils.createResourceRequest(ResourceRequest.ANY, 1*GB, 1, 
            true, priority, recordFactory));
    app_1.updateResourceRequests(app_1_requests_0);

    //app_1 will still get assigned first as priority is more.
    a.assignContainers(clusterResource, node_0_0, new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
    Assert.assertEquals(2*GB, app_1.getCurrentConsumption().getMemory());
    Assert.assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());

    //and only then will app_2
    a.assignContainers(clusterResource, node_0_0, new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
    Assert.assertEquals(3*GB, app_0.getCurrentConsumption().getMemory());
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:77,代码来源:TestLeafQueue.java

示例9: testFairAssignment

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.common.fica.FiCaSchedulerApp; //导入方法依赖的package包/类
@Test
public void testFairAssignment() throws Exception {

  LeafQueue a = stubLeafQueue((LeafQueue)queues.get(A));

  OrderingPolicy<FiCaSchedulerApp> schedulingOrder =
    new FairOrderingPolicy<FiCaSchedulerApp>();

  a.setOrderingPolicy(schedulingOrder);
  a.setPendingAppsOrderingPolicy(new FairOrderingPolicy<FiCaSchedulerApp>());

  String host_0_0 = "127.0.0.1";
  String rack_0 = "rack_0";
  FiCaSchedulerNode node_0_0 = TestUtils.getMockNode(host_0_0, rack_0, 0, 16*GB);

  final int numNodes = 4;
  Resource clusterResource = Resources.createResource(
      numNodes * (16*GB), numNodes * 16);
  when(csContext.getNumClusterNodes()).thenReturn(numNodes);

  String user_0 = "user_0";

  final ApplicationAttemptId appAttemptId_0 =
      TestUtils.getMockApplicationAttemptId(0, 0);
  FiCaSchedulerApp app_0 =
      spy(new FiCaSchedulerApp(appAttemptId_0, user_0, a,
          mock(ActiveUsersManager.class), spyRMContext));
  a.submitApplicationAttempt(app_0, user_0);

  final ApplicationAttemptId appAttemptId_1 =
      TestUtils.getMockApplicationAttemptId(1, 0);
  FiCaSchedulerApp app_1 =
      spy(new FiCaSchedulerApp(appAttemptId_1, user_0, a,
          mock(ActiveUsersManager.class), spyRMContext));
  a.submitApplicationAttempt(app_1, user_0);

  Priority priority = TestUtils.createMockPriority(1);
  List<ResourceRequest> app_0_requests_0 = new ArrayList<ResourceRequest>();
  List<ResourceRequest> app_1_requests_0 = new ArrayList<ResourceRequest>();

  app_0_requests_0.clear();
  app_0_requests_0.add(
      TestUtils.createResourceRequest(ResourceRequest.ANY, 2*GB, 1,
          true, priority, recordFactory));
  app_0.updateResourceRequests(app_0_requests_0);

  app_1_requests_0.clear();
  app_1_requests_0.add(
      TestUtils.createResourceRequest(ResourceRequest.ANY, 1*GB, 1,
          true, priority, recordFactory));
  app_1.updateResourceRequests(app_1_requests_0);

  // app_0 will get containers as its submitted first.
  a.assignContainers(clusterResource, node_0_0, new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
  Assert.assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());
  a.assignContainers(clusterResource, node_0_0, new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
  Assert.assertEquals(1*GB, app_1.getCurrentConsumption().getMemory());

  app_0_requests_0.clear();
  app_0_requests_0.add(
      TestUtils.createResourceRequest(ResourceRequest.ANY, 1*GB, 1,
          true, priority, recordFactory));
  app_0.updateResourceRequests(app_0_requests_0);

  app_1_requests_0.clear();
  app_1_requests_0.add(
      TestUtils.createResourceRequest(ResourceRequest.ANY, 1*GB, 1,
          true, priority, recordFactory));
  app_1.updateResourceRequests(app_1_requests_0);

  //Since it already has more resources, app_0 will not get
  //assigned first, but app_1 will
  a.assignContainers(clusterResource, node_0_0, new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
  Assert.assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());
  Assert.assertEquals(2*GB, app_1.getCurrentConsumption().getMemory());

  //and only then will app_0
  a.assignContainers(clusterResource, node_0_0, new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
  Assert.assertEquals(3*GB, app_0.getCurrentConsumption().getMemory());

}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:82,代码来源:TestLeafQueue.java

示例10: allocate

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.common.fica.FiCaSchedulerApp; //导入方法依赖的package包/类
@Override
@Lock(Lock.NoLock.class)
public Allocation allocate(ApplicationAttemptId applicationAttemptId,
    List<ResourceRequest> ask, List<ContainerId> release, 
    List<String> blacklistAdditions, List<String> blacklistRemovals) {

  FiCaSchedulerApp application = getApplicationAttempt(applicationAttemptId);
  if (application == null) {
    LOG.info("Calling allocate on removed " +
        "or non existant application " + applicationAttemptId);
    return EMPTY_ALLOCATION;
  }
  
  // Sanity check
  SchedulerUtils.normalizeRequests(
      ask, getResourceCalculator(), getClusterResource(),
      getMinimumResourceCapability(), getMaximumResourceCapability());

  // Release containers
 
  releaseContainers(release, application);

  synchronized (application) {

    // make sure we aren't stopping/removing the application
    // when the allocate comes in
    if (application.isStopped()) {
      LOG.info("Calling allocate on a stopped " +
          "application " + applicationAttemptId);
      return EMPTY_ALLOCATION;
    }

    if (!ask.isEmpty()) {

      if(LOG.isDebugEnabled()) {
        LOG.debug("allocate: pre-update" +
          " applicationAttemptId=" + applicationAttemptId + 
          " application=" + application);
      }
      application.showRequests();

      // Update application requests
      application.updateResourceRequests(ask);

      LOG.debug("allocate: post-update");
      application.showRequests();
    }

    if(LOG.isDebugEnabled()) {
      LOG.debug("allocate:" +
        " applicationAttemptId=" + applicationAttemptId + 
        " #ask=" + ask.size());
    }

    application.updateBlacklist(blacklistAdditions, blacklistRemovals);

    return application.getAllocation(getResourceCalculator(),
                 clusterResource, getMinimumResourceCapability());
  }
}
 
开发者ID:yncxcw,项目名称:big-c,代码行数:61,代码来源:CapacityScheduler.java


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