public WritingApplicationAttemptFinishEvent(ApplicationAttemptId appAttemptId, ApplicationAttemptFinishData appAttemptFinish) : base(WritingHistoryEventType.AppAttemptFinish) { this.appAttemptId = appAttemptId; this.appAttemptFinish = appAttemptFinish; }
/// <exception cref="System.IO.IOException"/> public virtual void ApplicationAttemptFinished(ApplicationAttemptFinishData appAttemptFinish ) { ConcurrentMap <ApplicationAttemptId, ApplicationAttemptHistoryData> subMap = GetSubMap (appAttemptFinish.GetApplicationAttemptId().GetApplicationId()); ApplicationAttemptHistoryData data = subMap[appAttemptFinish.GetApplicationAttemptId ()]; if (data == null) { throw new IOException("The finish information of application attempt " + appAttemptFinish .GetApplicationAttemptId() + " is stored before" + " the start information."); } // Make the assumption that YarnApplicationAttemptState should not be null // if the finish information is already recorded if (data.GetYarnApplicationAttemptState() != null) { throw new IOException("The finish information of application attempt " + appAttemptFinish .GetApplicationAttemptId() + " is already stored."); } data.SetTrackingURL(appAttemptFinish.GetTrackingURL()); data.SetDiagnosticsInfo(appAttemptFinish.GetDiagnosticsInfo()); data.SetFinalApplicationStatus(appAttemptFinish.GetFinalApplicationStatus()); data.SetYarnApplicationAttemptState(appAttemptFinish.GetYarnApplicationAttemptState ()); }
/// <exception cref="System.IO.IOException"/> protected internal virtual void WriteApplicationAttemptFinishData(ApplicationAttemptId appAttemptId) { store.ApplicationAttemptFinished(ApplicationAttemptFinishData.NewInstance(appAttemptId , appAttemptId.ToString(), "test tracking url", FinalApplicationStatus.Undefined , YarnApplicationAttemptState.Finished)); }
private static void MergeApplicationAttemptHistoryData(ApplicationAttemptHistoryData historyData, ApplicationAttemptFinishData finishData) { historyData.SetDiagnosticsInfo(finishData.GetDiagnosticsInfo()); historyData.SetTrackingURL(finishData.GetTrackingURL()); historyData.SetFinalApplicationStatus(finishData.GetFinalApplicationStatus()); historyData.SetYarnApplicationAttemptState(finishData.GetYarnApplicationAttemptState ()); }
/// <exception cref="System.IO.IOException"/> public virtual void ApplicationAttemptFinished(ApplicationAttemptFinishData appAttemptFinish ) { FileSystemApplicationHistoryStore.HistoryFileWriter hfWriter = GetHistoryFileWriter (appAttemptFinish.GetApplicationAttemptId().GetApplicationId()); System.Diagnostics.Debug.Assert(appAttemptFinish is ApplicationAttemptFinishDataPBImpl ); try { hfWriter.WriteHistoryData(new FileSystemApplicationHistoryStore.HistoryDataKey(appAttemptFinish .GetApplicationAttemptId().ToString(), FinishDataSuffix), ((ApplicationAttemptFinishDataPBImpl )appAttemptFinish).GetProto().ToByteArray()); Log.Info("Finish information of application attempt " + appAttemptFinish.GetApplicationAttemptId () + " is written"); } catch (IOException e) { Log.Error("Error when writing finish information of application attempt " + appAttemptFinish .GetApplicationAttemptId(), e); throw; } }
/// <exception cref="System.IO.IOException"/> public virtual ApplicationAttemptHistoryData GetApplicationAttempt(ApplicationAttemptId appAttemptId) { FileSystemApplicationHistoryStore.HistoryFileReader hfReader = GetHistoryFileReader (appAttemptId.GetApplicationId()); try { bool readStartData = false; bool readFinishData = false; ApplicationAttemptHistoryData historyData = ApplicationAttemptHistoryData.NewInstance (appAttemptId, null, -1, null, null, null, FinalApplicationStatus.Undefined, null ); while ((!readStartData || !readFinishData) && hfReader.HasNext()) { FileSystemApplicationHistoryStore.HistoryFileReader.Entry entry = hfReader.Next(); if (entry.key.id.Equals(appAttemptId.ToString())) { if (entry.key.suffix.Equals(StartDataSuffix)) { ApplicationAttemptStartData startData = ParseApplicationAttemptStartData(entry.value ); MergeApplicationAttemptHistoryData(historyData, startData); readStartData = true; } else { if (entry.key.suffix.Equals(FinishDataSuffix)) { ApplicationAttemptFinishData finishData = ParseApplicationAttemptFinishData(entry .value); MergeApplicationAttemptHistoryData(historyData, finishData); readFinishData = true; } } } } if (!readStartData && !readFinishData) { return(null); } if (!readStartData) { Log.Warn("Start information is missing for application attempt " + appAttemptId); } if (!readFinishData) { Log.Warn("Finish information is missing for application attempt " + appAttemptId); } Log.Info("Completed reading history information of application attempt " + appAttemptId ); return(historyData); } catch (IOException e) { Log.Error("Error when reading history file of application attempt" + appAttemptId , e); throw; } finally { hfReader.Close(); } }
/// <exception cref="System.IO.IOException"/> public virtual void ApplicationAttemptFinished(ApplicationAttemptFinishData appAttemptFinish ) { }
public virtual void ApplicationAttemptFinished(RMAppAttempt appAttempt, RMAppAttemptState finalState) { if (historyServiceEnabled) { dispatcher.GetEventHandler().Handle(new WritingApplicationAttemptFinishEvent(appAttempt .GetAppAttemptId(), ApplicationAttemptFinishData.NewInstance(appAttempt.GetAppAttemptId (), appAttempt.GetDiagnostics().ToString(), appAttempt.GetTrackingUrl(), appAttempt .GetFinalApplicationStatus(), RMServerUtils.CreateApplicationAttemptState(finalState )))); } }