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


Java AMRMClient.addContainerRequest方法代码示例

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


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

示例1: verifyAddRequestFailed

import org.apache.hadoop.yarn.client.api.AMRMClient; //导入方法依赖的package包/类
private void verifyAddRequestFailed(AMRMClient<ContainerRequest> client,
    ContainerRequest request) {
  try {
    client.addContainerRequest(request);
  } catch (InvalidContainerRequestException e) {
    return;
  }
  Assert.fail();
}
 
开发者ID:naver,项目名称:hadoop,代码行数:10,代码来源:TestAMRMClient.java

示例2: allocateAndStartContainers

import org.apache.hadoop.yarn.client.api.AMRMClient; //导入方法依赖的package包/类
private List<Container> allocateAndStartContainers(
    final AMRMClient<ContainerRequest> amClient, final NMClient nmClient,
    int num) throws YarnException, IOException {
  // set up allocation requests
  for (int i = 0; i < num; ++i) {
    amClient.addContainerRequest(
        new ContainerRequest(capability, nodes, racks, priority));
  }
  // send allocation requests
  amClient.allocate(0.1f);
  // sleep to let NM's heartbeat to RM and trigger allocations
  sleep(150);
  // get allocations
  AllocateResponse allocResponse = amClient.allocate(0.1f);
  List<Container> containers = allocResponse.getAllocatedContainers();
  Assert.assertEquals(num, containers.size());
  // build container launch context
  Credentials ts = new Credentials();
  DataOutputBuffer dob = new DataOutputBuffer();
  ts.writeTokenStorageToStream(dob);
  ByteBuffer securityTokens =
      ByteBuffer.wrap(dob.getData(), 0, dob.getLength());
  // start a process long enough for increase/decrease action to take effect
  ContainerLaunchContext clc = BuilderUtils.newContainerLaunchContext(
      Collections.<String, LocalResource>emptyMap(),
      new HashMap<String, String>(), Arrays.asList("sleep", "100"),
      new HashMap<String, ByteBuffer>(), securityTokens,
      new HashMap<ApplicationAccessType, String>());
  // start the containers and make sure they are in RUNNING state
  try {
    for (int i = 0; i < num; i++) {
      Container container = containers.get(i);
      nmClient.startContainer(container, clc);
      // NodeManager may still need some time to get the stable
      // container status
      while (true) {
        ContainerStatus status = nmClient.getContainerStatus(
            container.getId(), container.getNodeId());
        if (status.getState() == ContainerState.RUNNING) {
          break;
        }
        sleep(100);
      }
    }
  } catch (YarnException e) {
    throw new AssertionError("Exception is not expected: " + e);
  }
  // sleep to let NM's heartbeat to RM to confirm container launch
  sleep(200);
  return containers;
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:52,代码来源:TestAMRMClient.java

示例3: main

import org.apache.hadoop.yarn.client.api.AMRMClient; //导入方法依赖的package包/类
public static void main(String[] args) throws Exception {

    String command = args[0];

    int argi = 0;

    for (argi=1; argi<args.length - 1; argi++) {
      command += " " + args[argi];
    }

    final int n = Integer.valueOf(args[argi]);

    // Initialize clients to ResourceManager and NodeManagers
    Configuration conf = new YarnConfiguration();

    AMRMClient<ContainerRequest> rmClient = AMRMClient.createAMRMClient();
    rmClient.init(conf);
    rmClient.start();

    NMClient nmClient = NMClient.createNMClient();
    nmClient.init(conf);
    nmClient.start();

    // Register with ResourceManager
    rmClient.registerApplicationMaster("", 0, "");
    
    // Priority for worker containers - priorities are intra-application
    Priority priority = Records.newRecord(Priority.class);
    priority.setPriority(0);

    // Resource requirements for worker containers
    Resource capability = Records.newRecord(Resource.class);
    capability.setMemory(128);
    capability.setVirtualCores(1);

    // Make container requests to ResourceManager
    for (int i=1; i <= n; i++) {
      ContainerRequest containerAsk = new ContainerRequest(capability, null, null, priority);
      System.out.println("=> Container Request " + i);
      rmClient.addContainerRequest(containerAsk);
    }

    // Obtain allocated containers and launch 
    int allocatedContainers = 0;
    while (allocatedContainers < n) {
      AllocateResponse response = rmClient.allocate(0);
      for (Container container : response.getAllocatedContainers()) {
        ++allocatedContainers;

        // Launch container by create ContainerLaunchContext
        ContainerLaunchContext ctx = 
            Records.newRecord(ContainerLaunchContext.class);
        ctx.setCommands(Collections.singletonList(
                command + 
                " >" + ApplicationConstants.LOG_DIR_EXPANSION_VAR + "/stdouterr_am" + 
                " 2>&1"
                ));
        System.out.println("=> Launching Container " + allocatedContainers);
        nmClient.startContainer(container, ctx);
      }
      Thread.sleep(100);
    }

    // Now work with containers
    for (int container = 0; container < n; container++) {
      rmClient.allocate(0);
    }

    // Un-register with ResourceManager
    rmClient.unregisterApplicationMaster(
        FinalApplicationStatus.SUCCEEDED, "", "");
  }
 
开发者ID:nvijayap,项目名称:hadoop-yarn,代码行数:73,代码来源:ApplicationMaster.java

示例4: main

import org.apache.hadoop.yarn.client.api.AMRMClient; //导入方法依赖的package包/类
public static void main(String[] args) throws Exception {

    final String command = args[0];
    final int n = Integer.valueOf(args[1]);
    
    // Initialize clients to ResourceManager and NodeManagers
    Configuration conf = new YarnConfiguration();

    AMRMClient<ContainerRequest> rmClient = AMRMClient.createAMRMClient();
    rmClient.init(conf);
    rmClient.start();

    NMClient nmClient = NMClient.createNMClient();
    nmClient.init(conf);
    nmClient.start();

    // Register with ResourceManager
    System.out.println("registerApplicationMaster 0");
    rmClient.registerApplicationMaster("", 0, "");
    System.out.println("registerApplicationMaster 1");
    
    // Priority for worker containers - priorities are intra-application
    Priority priority = Records.newRecord(Priority.class);
    priority.setPriority(0);

    // Resource requirements for worker containers
    Resource capability = Records.newRecord(Resource.class);
    capability.setMemory(128);
    capability.setVirtualCores(1);

    // Make container requests to ResourceManager
    for (int i = 0; i < n; ++i) {
      ContainerRequest containerAsk = new ContainerRequest(capability, null, null, priority);
      System.out.println("Making res-req " + i);
      rmClient.addContainerRequest(containerAsk);
    }

    // Obtain allocated containers, launch and check for responses
    int responseId = 0;
    int completedContainers = 0;
    while (completedContainers < n) {
        AllocateResponse response = rmClient.allocate(responseId++);
        for (Container container : response.getAllocatedContainers()) {
            // Launch container by create ContainerLaunchContext
            ContainerLaunchContext ctx =
                    Records.newRecord(ContainerLaunchContext.class);
            ctx.setCommands(
                    Collections.singletonList(
                            command +
                                    " 1>" + ApplicationConstants.LOG_DIR_EXPANSION_VAR + "/stdout" +
                                    " 2>" + ApplicationConstants.LOG_DIR_EXPANSION_VAR + "/stderr"
                    ));
            System.out.println("Launching container " + container.getId());
            nmClient.startContainer(container, ctx);
        }
        for (ContainerStatus status : response.getCompletedContainersStatuses()) {
            ++completedContainers;
            System.out.println("Completed container " + status.getContainerId());
        }
        Thread.sleep(100);
    }

    // Un-register with ResourceManager
    rmClient.unregisterApplicationMaster(
        FinalApplicationStatus.SUCCEEDED, "", "");
  }
 
开发者ID:hortonworks,项目名称:simple-yarn-app,代码行数:67,代码来源:ApplicationMaster.java


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