List of usage examples for org.apache.hadoop.yarn.api.protocolrecords FinishApplicationMasterRequest setDiagnostics
@Public @Stable public abstract void setDiagnostics(String diagnostics);
From source file:com.continuuity.weave.internal.yarn.ports.AMRMClientImpl.java
License:Apache License
@Override public void unregisterApplicationMaster(FinalApplicationStatus appStatus, String appMessage, String appTrackingUrl) throws YarnRemoteException { FinishApplicationMasterRequest request = recordFactory .newRecordInstance(FinishApplicationMasterRequest.class); request.setAppAttemptId(appAttemptId); request.setFinishApplicationStatus(appStatus); if (appMessage != null) { request.setDiagnostics(appMessage); }/*w w w. j a v a 2 s. c o m*/ if (appTrackingUrl != null) { request.setTrackingUrl(appTrackingUrl); } rmClient.finishApplicationMaster(request); }
From source file:com.datatorrent.stram.StramMiniClusterTest.java
License:Apache License
@Ignore @Test/*from w w w.ja v a2s. 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:com.datatorrent.stram.StreamingAppMasterService.java
License:Apache License
private void finishApplication(FinalApplicationStatus finalStatus, int numTotalContainers) throws YarnException, IOException { LOG.info("Application completed. Signalling finish to RM"); FinishApplicationMasterRequest finishReq = Records.newRecord(FinishApplicationMasterRequest.class); finishReq.setFinalApplicationStatus(finalStatus); if (finalStatus != FinalApplicationStatus.SUCCEEDED) { String diagnostics = "Diagnostics." + ", total=" + numTotalContainers + ", completed=" + numCompletedContainers.get() + ", allocated=" + allocatedContainers.size() + ", failed=" + numFailedContainers.get(); if (!StringUtils.isEmpty(dnmgr.shutdownDiagnosticsMessage)) { diagnostics += "\n"; diagnostics += dnmgr.shutdownDiagnosticsMessage; }//from w w w.ja va 2 s .c o m // YARN-208 - as of 2.0.1-alpha dropped by the RM finishReq.setDiagnostics(diagnostics); // expected termination of the master process // application status and diagnostics message are set above } LOG.info("diagnostics: " + finishReq.getDiagnostics()); amRmClient.unregisterApplicationMaster(finishReq.getFinalApplicationStatus(), finishReq.getDiagnostics(), null); }
From source file:org.apache.tajo.master.rm.YarnTajoResourceManager.java
License:Apache License
@Override public void stopQueryMaster(QueryId queryId) { try {/*from w w w . j a v a2s . c o m*/ FinalApplicationStatus appStatus = FinalApplicationStatus.UNDEFINED; QueryInProgress queryInProgress = masterContext.getQueryJobManager().getQueryInProgress(queryId); if (queryInProgress == null) { return; } TajoProtos.QueryState state = queryInProgress.getQueryInfo().getQueryState(); if (state == TajoProtos.QueryState.QUERY_SUCCEEDED) { appStatus = FinalApplicationStatus.SUCCEEDED; } else if (state == TajoProtos.QueryState.QUERY_FAILED || state == TajoProtos.QueryState.QUERY_ERROR) { appStatus = FinalApplicationStatus.FAILED; } else if (state == TajoProtos.QueryState.QUERY_ERROR) { appStatus = FinalApplicationStatus.FAILED; } FinishApplicationMasterRequest request = recordFactory .newRecordInstance(FinishApplicationMasterRequest.class); request.setFinalApplicationStatus(appStatus); request.setDiagnostics("QueryMaster shutdown by TajoMaster."); rmClient.finishApplicationMaster(request); } catch (Exception e) { LOG.error(e.getMessage(), e); } }
From source file:org.deeplearning4j.iterativereduce.runtime.yarn.ResourceManagerHandler.java
License:Apache License
public void finishApplication(String diagnostics, FinalApplicationStatus finishState) throws YarnRemoteException { if (amResourceManager == null) throw new IllegalStateException("Cannot finish an application without connecting to resource manager!"); FinishApplicationMasterRequest request = Records.newRecord(FinishApplicationMasterRequest.class); request.setAppAttemptId(appAttemptId); request.setDiagnostics(diagnostics); request.setFinishApplicationStatus(finishState); LOG.info("Sending finish application notification " + ", state=" + request.getFinalApplicationStatus() + ", diagnostics=" + request.getDiagnostics()); amResourceManager.finishApplicationMaster(request); }