List of usage examples for org.apache.hadoop.yarn.api ApplicationMasterProtocol registerApplicationMaster
@Public @Stable @Idempotent public RegisterApplicationMasterResponse registerApplicationMaster(RegisterApplicationMasterRequest request) throws YarnException, IOException;
The interface used by a new ApplicationMaster
to register with the ResourceManager
.
From source file:com.datatorrent.stram.StramMiniClusterTest.java
License:Apache License
@Ignore @Test//from w ww . ja v a 2s . c o m public void testUnmanagedAM() throws Exception { new InlineAM(conf) { @Override @SuppressWarnings("SleepWhileInLoop") public void runAM(ApplicationAttemptId attemptId) throws Exception { LOG.debug("AM running {}", attemptId); //AMRMClient amRmClient = new AMRMClientImpl(attemptId); //amRmClient.init(conf); //amRmClient.start(); YarnClientHelper yarnClient = new YarnClientHelper(conf); ApplicationMasterProtocol resourceManager = yarnClient.connectToRM(); // register with the RM (LAUNCHED -> RUNNING) RegisterApplicationMasterRequest appMasterRequest = Records .newRecord(RegisterApplicationMasterRequest.class); resourceManager.registerApplicationMaster(appMasterRequest); // AM specific logic /* int containerCount = 1; Resource capability = Records.newRecord(Resource.class); capability.setMemory(1500); Priority priority = Records.newRecord(Priority.class); priority.setPriority(10); String[] hosts = {"vm1"}; String[] racks = {"somerack"}; AMRMClient.ContainerRequest req = new AMRMClient.ContainerRequest(capability, hosts, racks, priority, containerCount); amRmClient.addContainerRequest(req); for (int i=0; i<100; i++) { AllocateResponse ar = amRmClient.allocate(0); Thread.sleep(1000); LOG.debug("allocateResponse: {}" , ar); } */ int responseId = 0; AllocateRequest req = Records.newRecord(AllocateRequest.class); req.setResponseId(responseId++); List<ResourceRequest> lr = Lists.newArrayList(); lr.add(setupContainerAskForRM("hdev-vm", 1, 128, 10)); lr.add(setupContainerAskForRM("/default-rack", 1, 128, 10)); lr.add(setupContainerAskForRM("*", 1, 128, 10)); req.setAskList(lr); LOG.info("Requesting: " + req.getAskList()); resourceManager.allocate(req); for (int i = 0; i < 100; i++) { req = Records.newRecord(AllocateRequest.class); req.setResponseId(responseId++); AllocateResponse ar = resourceManager.allocate(req); sleep(1000); LOG.debug("allocateResponse: {}", ar); } // unregister from RM FinishApplicationMasterRequest finishReq = Records.newRecord(FinishApplicationMasterRequest.class); finishReq.setFinalApplicationStatus(FinalApplicationStatus.SUCCEEDED); finishReq.setDiagnostics("testUnmanagedAM finished"); resourceManager.finishApplicationMaster(finishReq); } private ResourceRequest setupContainerAskForRM(String resourceName, int numContainers, int containerMemory, int priority) { ResourceRequest request = Records.newRecord(ResourceRequest.class); // setup requirements for hosts // whether a particular rack/host is needed // Refer to apis under org.apache.hadoop.net for more // details on how to get figure out rack/host mapping. // using * as any host will do for the distributed shell app request.setResourceName(resourceName); // set no. of containers needed request.setNumContainers(numContainers); // set the priority for the request Priority pri = Records.newRecord(Priority.class); pri.setPriority(priority); request.setPriority(pri); // Set up resource type requirements // For now, only memory is supported so we set memory requirements Resource capability = Records.newRecord(Resource.class); capability.setMemory(containerMemory); request.setCapability(capability); return request; } }.run(); }
From source file:org.apache.hama.bsp.BSPApplicationMaster.java
License:Apache License
/** * Registers this application master with the Resource Manager and retrieves a * response which is used to launch additional containers. *///from w ww .jav a 2s .co m private static RegisterApplicationMasterResponse registerApplicationMaster( ApplicationMasterProtocol resourceManager, String appMasterHostName, int appMasterRpcPort, String appMasterTrackingUrl) throws YarnException, IOException { RegisterApplicationMasterRequest appMasterRequest = Records .newRecord(RegisterApplicationMasterRequest.class); appMasterRequest.setHost(appMasterHostName); appMasterRequest.setRpcPort(appMasterRpcPort); // TODO tracking URL appMasterRequest.setTrackingUrl(appMasterTrackingUrl); RegisterApplicationMasterResponse response = resourceManager.registerApplicationMaster(appMasterRequest); LOG.info("ApplicationMaster has maximum resource capability of: " + response.getMaximumResourceCapability().getMemory()); return response; }
From source file:org.springframework.yarn.am.AppmasterRmTemplate.java
License:Apache License
@Override public RegisterApplicationMasterResponse registerApplicationMaster(final String host, final Integer rpcPort, final String trackUrl) { return execute(new YarnRpcCallback<RegisterApplicationMasterResponse, ApplicationMasterProtocol>() { @Override/*from w w w. j a v a 2 s.c o m*/ public RegisterApplicationMasterResponse doInYarn(ApplicationMasterProtocol proxy) throws YarnException, IOException { RegisterApplicationMasterRequest appMasterRequest = Records .newRecord(RegisterApplicationMasterRequest.class); appMasterRequest.setHost(host != null ? host : ""); appMasterRequest.setRpcPort(rpcPort != null ? rpcPort : 0); appMasterRequest.setTrackingUrl(trackUrl != null ? trackUrl : ""); return proxy.registerApplicationMaster(appMasterRequest); } }); }