Example usage for org.apache.hadoop.yarn.api.protocolrecords FinishApplicationMasterRequest getDiagnostics

List of usage examples for org.apache.hadoop.yarn.api.protocolrecords FinishApplicationMasterRequest getDiagnostics

Introduction

In this page you can find the example usage for org.apache.hadoop.yarn.api.protocolrecords FinishApplicationMasterRequest getDiagnostics.

Prototype

@Public
@Stable
public abstract String getDiagnostics();

Source Link

Document

Get diagnostic information on application failure.

Usage

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 ww  w .  jav a  2  s .  c om*/
        // 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);
}