public void showFinalStatus() { YarnApplicationState state = report.getYarnApplicationState(); if (state == YarnApplicationState.FAILED || state == YarnApplicationState.FINISHED) { FinalApplicationStatus status = report.getFinalApplicationStatus(); System.out.println("Final status: " + status.toString()); if (status != FinalApplicationStatus.SUCCEEDED) { String diag = report.getDiagnostics(); if (!DoYUtil.isBlank(diag)) { System.out.println("Diagnostics: " + diag); } } } }
public Pair<RMAppState, FinalApplicationStatus> get() throws IOException { String applicationId = mrJobId.replace("job", "application"); String url = yarnUrl.replace("${job_id}", applicationId); JsonNode root = new ObjectMapper().readTree(getHttpResponse(url)); RMAppState state = RMAppState.valueOf(root.findValue("state").getTextValue()); FinalApplicationStatus finalStatus = FinalApplicationStatus.valueOf(root.findValue("finalStatus").getTextValue()); return Pair.of(state, finalStatus); }
public static FinalApplicationStatusProto convertToProtoFormat(FinalApplicationStatus e) { return FinalApplicationStatusProto.valueOf(FINAL_APPLICATION_STATUS_PREFIX + e.name()); } public static FinalApplicationStatus convertFromProtoFormat(FinalApplicationStatusProto e) {
private static boolean finalAppStatusUndefined(ApplicationReport appReport) { FinalApplicationStatus status = appReport.getFinalApplicationStatus(); return !FinalApplicationStatus.SUCCEEDED.equals(status) && !FinalApplicationStatus.FAILED.equals(status) && !FinalApplicationStatus.KILLED.equals(status); }
public static FinalApplicationStatusProto convertToProtoFormat(FinalApplicationStatus e) { return FinalApplicationStatusProto.valueOf(FINAL_APPLICATION_STATUS_PREFIX + e.name()); } public static FinalApplicationStatus convertFromProtoFormat(FinalApplicationStatusProto e) {
@Subscribe public void handleApplicationReportArrivalEvent(ApplicationReportArrivalEvent applicationReportArrivalEvent) { ApplicationReport applicationReport = applicationReportArrivalEvent.getApplicationReport(); YarnApplicationState appState = applicationReport.getYarnApplicationState(); LOGGER.info("Gobblin Yarn application state: " + appState.toString()); // Reset the count on failures to get the ApplicationReport when there's one success this.getApplicationReportFailureCount.set(0); if (appState == YarnApplicationState.FINISHED || appState == YarnApplicationState.FAILED || appState == YarnApplicationState.KILLED) { applicationCompleted = true; LOGGER.info("Gobblin Yarn application finished with final status: " + applicationReport.getFinalApplicationStatus().toString()); if (applicationReport.getFinalApplicationStatus() == FinalApplicationStatus.FAILED) { LOGGER.error("Gobblin Yarn application failed for the following reason: " + applicationReport.getDiagnostics()); } try { GobblinYarnAppLauncher.this.stop(); } catch (IOException ioe) { LOGGER.error("Failed to close the " + GobblinYarnAppLauncher.class.getSimpleName(), ioe); } catch (TimeoutException te) { LOGGER.error("Timeout in stopping the service manager", te); } finally { if (this.emailNotificationOnShutdown) { sendEmailOnShutdown(Optional.of(applicationReport)); } } } }
public static FinalApplicationStatus convertFromProtoFormat(FinalApplicationStatusProto e) { return FinalApplicationStatus.valueOf(e.name().replace(FINAL_APPLICATION_STATUS_PREFIX, "")); }
public static FinalApplicationStatusProto convertToProtoFormat(FinalApplicationStatus e) { return FinalApplicationStatusProto.valueOf(FINAL_APPLICATION_STATUS_PREFIX + e.name()); } public static FinalApplicationStatus convertFromProtoFormat(FinalApplicationStatusProto e) {
private static boolean finalAppStatusUndefined(ApplicationReport appReport) { FinalApplicationStatus status = appReport.getFinalApplicationStatus(); return !FinalApplicationStatus.SUCCEEDED.equals(status) && !FinalApplicationStatus.FAILED.equals(status) && !FinalApplicationStatus.KILLED.equals(status); }
+ ", appStartTime=" + report.getStartTime() + ", yarnAppState=" + report.getYarnApplicationState().toString() + ", distributedFinalState=" + report.getFinalApplicationStatus().toString() + ", appTrackingUrl=" + report.getTrackingUrl() + ", appUser=" + report.getUser()); } else { LOG.info("Application did finished unsuccessfully." + " YarnState=" + state.toString() + ", DSFinalStatus=" + dsStatus.toString() + ". Breaking monitoring loop"); return false; || YarnApplicationState.FAILED == state) { LOG.info("Application did not finish." + " YarnState=" + state.toString() + ", DSFinalStatus=" + dsStatus.toString() + ". Breaking monitoring loop"); return false;
public static FinalApplicationStatus convertFromProtoFormat(FinalApplicationStatusProto e) { return FinalApplicationStatus.valueOf(e.name().replace(FINAL_APPLICATION_STATUS_PREFIX, "")); }
private int printFinalJobReport() throws YarnException, IOException { try { ApplicationReport report = this.yarnClient.getApplicationReport(getAppId()); FinalApplicationStatus finalAppStatus = report.getFinalApplicationStatus(); final long secs = (report.getFinishTime() - report.getStartTime()) / 1000L; final String time = String.format("%d minutes, %d seconds.", secs / 60L, secs % 60L); LOG.info("Completed {}: {}, total running time: {}", getAppName(), finalAppStatus.name(), time); return finalAppStatus == FinalApplicationStatus.SUCCEEDED ? 0 : -1; } catch (YarnException yre) { LOG.error(String.format("Exception encountered while attempting to request a final job report for %s.", getAppId()), yre); return -1; } }
} else { LOG.info("Application has completed failed with YarnApplicationState=" + yarnApplicationState.toString() + " and FinalApplicationStatus=" + finalApplicationStatus.toString()); return false; isRunning.set(false); LOG.info("Application has completed with YarnApplicationState=" + yarnApplicationState.toString() + " and FinalApplicationStatus=" + finalApplicationStatus.toString()); return false;