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


Java Allocation.getContainers方法代码示例

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


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

示例1: transition

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.Allocation; //导入方法依赖的package包/类
@Override
public RMAppAttemptState transition(RMAppAttemptImpl appAttempt,
    RMAppAttemptEvent event) {
  if (!appAttempt.submissionContext.getUnmanagedAM()) {
    // Request a container for the AM.
    ResourceRequest request =
        BuilderUtils.newResourceRequest(
            AM_CONTAINER_PRIORITY, ResourceRequest.ANY, appAttempt
                .getSubmissionContext().getResource(), 1);

    // SchedulerUtils.validateResourceRequests is not necessary because
    // AM resource has been checked when submission
    Allocation amContainerAllocation = appAttempt.scheduler.allocate(
        appAttempt.applicationAttemptId,
        Collections.singletonList(request), 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:Seagate,项目名称:hadoop-on-lustre2,代码行数:27,代码来源:RMAppAttemptImpl.java

示例2: transition

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.Allocation; //导入方法依赖的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

示例3: getResources

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.Allocation; //导入方法依赖的package包/类
public synchronized List<Container> getResources() throws IOException {
  if(LOG.isDebugEnabled()) {
    LOG.debug("getResources begin:" + " application=" + applicationId
      + " #ask=" + ask.size());

    for (ResourceRequest request : ask) {
      LOG.debug("getResources:" + " application=" + applicationId
        + " ask-request=" + request);
    }
  }
  
  // Get resources from the ResourceManager
  Allocation allocation = resourceManager.getResourceScheduler().allocate(
      applicationAttemptId, new ArrayList<ResourceRequest>(ask),
      new ArrayList<ContainerId>(), null, null);
  System.out.println("-=======" + applicationAttemptId);
  System.out.println("----------" + resourceManager.getRMContext().getRMApps()
      .get(applicationId).getRMAppAttempt(applicationAttemptId));
  List<Container> containers = allocation.getContainers();

  // Clear state for next interaction with ResourceManager
  ask.clear();
  
  if(LOG.isDebugEnabled()) {
    LOG.debug("getResources() for " + applicationId + ":"
      + " ask=" + ask.size() + " recieved=" + containers.size());
  }
  
  return containers;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:31,代码来源:Application.java

示例4: getResources

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.Allocation; //导入方法依赖的package包/类
public synchronized List<Container> getResources() throws IOException {
  if(LOG.isDebugEnabled()) {
    LOG.debug("getResources begin:" + " application=" + applicationId
      + " #ask=" + ask.size());

    for (ResourceRequest request : ask) {
      LOG.debug("getResources:" + " application=" + applicationId
        + " ask-request=" + request);
    }
  }
  
  // Get resources from the ResourceManager
  Allocation allocation = resourceManager.getResourceScheduler().allocate(
      applicationAttemptId, new ArrayList<ResourceRequest>(ask),
      new ArrayList<ContainerId>(), null, null, null, null);
  System.out.println("-=======" + applicationAttemptId);
  System.out.println("----------" + resourceManager.getRMContext().getRMApps()
      .get(applicationId).getRMAppAttempt(applicationAttemptId));
  List<Container> containers = allocation.getContainers();

  // Clear state for next interaction with ResourceManager
  ask.clear();
  
  if(LOG.isDebugEnabled()) {
    LOG.debug("getResources() for " + applicationId + ":"
      + " ask=" + ask.size() + " recieved=" + containers.size());
  }
  
  return containers;
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:31,代码来源:Application.java

示例5: allocate

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.Allocation; //导入方法依赖的package包/类
@Override
public synchronized Allocation allocate(
    ApplicationAttemptId applicationAttemptId, List<ResourceRequest> ask,
    List<ContainerId> release, List<String> blacklistAdditions,
    List<String> blacklistRemovals,
    List<ContainerResourceChangeRequest> increaseRequest,
    List<ContainerResourceChangeRequest> decreaseRequests) {
  List<ResourceRequest> askCopy = new ArrayList<ResourceRequest>();
  for (ResourceRequest req : ask) {
    ResourceRequest reqCopy = ResourceRequest.newInstance(req
        .getPriority(), req.getResourceName(), req.getCapability(), req
        .getNumContainers(), req.getRelaxLocality());
    askCopy.add(reqCopy);
  }
  SecurityUtil.setTokenServiceUseIp(false);
  Allocation normalAlloc = super.allocate(
      applicationAttemptId, askCopy, release,
      blacklistAdditions, blacklistRemovals, null, null);
  List<Container> containers = normalAlloc.getContainers();
  if(containers.size() > 0) {
    // allocate excess container
    FiCaSchedulerApp application = super.getApplicationAttempt(applicationAttemptId);
    ContainerId containerId = BuilderUtils.newContainerId(application
        .getApplicationAttemptId(), application.getNewContainerId());
    Container excessC = mock(Container.class);
    when(excessC.getId()).thenReturn(containerId);
    when(excessC.getPriority()).thenReturn(RMContainerAllocator.PRIORITY_REDUCE);
    Resource mockR = mock(Resource.class);
    when(mockR.getMemory()).thenReturn(2048);
    when(excessC.getResource()).thenReturn(mockR);
    NodeId nId = mock(NodeId.class);
    when(nId.getHost()).thenReturn("local");
    when(excessC.getNodeId()).thenReturn(nId);
    containers.add(excessC);
  }
  Allocation excessAlloc = mock(Allocation.class);
  when(excessAlloc.getContainers()).thenReturn(containers);
  return excessAlloc;
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:40,代码来源:TestRMContainerAllocator.java

示例6: transition

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.Allocation; //导入方法依赖的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);
    
    // SchedulerUtils.validateResourceRequests is not necessary because
    // 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:Nextzero,项目名称:hadoop-2.6.0-cdh5.4.3,代码行数:36,代码来源:RMAppAttemptImpl.java

示例7: transition

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.Allocation; //导入方法依赖的package包/类
@Override
public RMAppAttemptState transition(RMAppAttemptImpl appAttempt,
    RMAppAttemptEvent event) {
  if (!appAttempt.submissionContext.getUnmanagedAM()) {
    // Send the acceptance to the app
    appAttempt.eventHandler.handle(new RMAppEvent(event
        .getApplicationAttemptId().getApplicationId(),
        RMAppEventType.APP_ACCEPTED));

    // Request a container for the AM.
    ResourceRequest request =
        BuilderUtils.newResourceRequest(
            AM_CONTAINER_PRIORITY, ResourceRequest.ANY, appAttempt
                .getSubmissionContext().getResource(), 1);

    // SchedulerUtils.validateResourceRequests is not necessary because
    // AM resource has been checked when submission
    Allocation amContainerAllocation = appAttempt.scheduler.allocate(
        appAttempt.applicationAttemptId,
        Collections.singletonList(request), EMPTY_CONTAINER_RELEASE_LIST, null, null);
    if (amContainerAllocation != null
        && amContainerAllocation.getContainers() != null) {
      assert (amContainerAllocation.getContainers().size() == 0);
    }
    return RMAppAttemptState.SCHEDULED;
  } else {
    // RM not allocating container. AM is self launched. 
    RMStateStore store = appAttempt.rmContext.getStateStore();
    // save state and then go to LAUNCHED state
    appAttempt.storeAttempt(store);
    return RMAppAttemptState.LAUNCHED_UNMANAGED_SAVING;
  }
}
 
开发者ID:ict-carch,项目名称:hadoop-plus,代码行数:34,代码来源:RMAppAttemptImpl.java

示例8: allocate

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.Allocation; //导入方法依赖的package包/类
@Override
public synchronized Allocation allocate(
    ApplicationAttemptId applicationAttemptId, List<ResourceRequest> ask,
    List<ContainerId> release, List<String> blacklistAdditions,
    List<String> blacklistRemovals,
    List<UpdateContainerRequest> increaseRequest,
    List<UpdateContainerRequest> decreaseRequests) {
  List<ResourceRequest> askCopy = new ArrayList<ResourceRequest>();
  for (ResourceRequest req : ask) {
    ResourceRequest reqCopy = ResourceRequest.newInstance(req
        .getPriority(), req.getResourceName(), req.getCapability(), req
        .getNumContainers(), req.getRelaxLocality());
    askCopy.add(reqCopy);
  }
  SecurityUtil.setTokenServiceUseIp(false);
  Allocation normalAlloc = super.allocate(
      applicationAttemptId, askCopy, release,
      blacklistAdditions, blacklistRemovals, null, null);
  List<Container> containers = normalAlloc.getContainers();
  if(containers.size() > 0) {
    // allocate excess container
    FiCaSchedulerApp application = super.getApplicationAttempt(applicationAttemptId);
    ContainerId containerId = BuilderUtils.newContainerId(application
        .getApplicationAttemptId(), application.getNewContainerId());
    Container excessC = mock(Container.class);
    when(excessC.getId()).thenReturn(containerId);
    when(excessC.getPriority()).thenReturn(RMContainerAllocator.PRIORITY_REDUCE);
    Resource mockR = mock(Resource.class);
    when(mockR.getMemorySize()).thenReturn(2048L);
    when(excessC.getResource()).thenReturn(mockR);
    NodeId nId = mock(NodeId.class);
    when(nId.getHost()).thenReturn("local");
    when(excessC.getNodeId()).thenReturn(nId);
    containers.add(excessC);
  }
  Allocation excessAlloc = mock(Allocation.class);
  when(excessAlloc.getContainers()).thenReturn(containers);
  return excessAlloc;
}
 
开发者ID:hopshadoop,项目名称:hops,代码行数:40,代码来源:TestRMContainerAllocator.java

示例9: transition

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.Allocation; //导入方法依赖的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

示例10: transition

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.Allocation; //导入方法依赖的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.getAMBlacklistManager().refreshNodeHostCount(
        appAttempt.scheduler.getNumClusterNodes());

    ResourceBlacklistRequest amBlacklist =
        appAttempt.getAMBlacklistManager().getBlacklistUpdates();
    if (LOG.isDebugEnabled()) {
      LOG.debug("Using blacklist for AM: additions(" +
          amBlacklist.getBlacklistAdditions() + ") and removals(" +
          amBlacklist.getBlacklistRemovals() + ")");
    }
    // AM resource has been checked when submission
    Allocation amContainerAllocation =
        appAttempt.scheduler.allocate(
            appAttempt.applicationAttemptId,
            Collections.singletonList(appAttempt.amReq),
            EMPTY_CONTAINER_RELEASE_LIST,
            amBlacklist.getBlacklistAdditions(),
            amBlacklist.getBlacklistRemovals(), 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:hopshadoop,项目名称:hops,代码行数:48,代码来源:RMAppAttemptImpl.java


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