List of usage examples for org.apache.hadoop.yarn.api.protocolrecords FinishApplicationMasterRequest getFinalApplicationStatus
@Public @Stable public abstract FinalApplicationStatus getFinalApplicationStatus();
ApplicationMaster. From source file:com.cloudera.kitten.appmaster.service.ApplicationMasterServiceImpl.java
License:Open Source License
@Override protected void shutDown() { // Stop the containers in the case that we're finishing because of a timeout. LOG.info("Stopping trackers"); for (ContainerTracker tracker : containerTrackers) { tracker.stopServices();/*from w w w. ja va2 s . c o m*/ } FinishApplicationMasterRequest finishReq = Records.newRecord(FinishApplicationMasterRequest.class); finishReq.setAppAttemptId(getApplicationAttemptId()); if (state() == State.FAILED || totalFailures.incrementAndGet() > parameters.getAllowedFailures()) { //TODO: diagnostics finishReq.setFinishApplicationStatus(FinalApplicationStatus.FAILED); } else { finishReq.setFinishApplicationStatus(FinalApplicationStatus.SUCCEEDED); } LOG.info("Sending finish request with status = " + finishReq.getFinalApplicationStatus()); try { resourceManager.finishApplicationMaster(finishReq); } catch (YarnRemoteException e) { LOG.error("Error finishing application master", e); } }
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 ww .ja v a2 s.co 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.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); }