public WritingApplicationFinishEvent(ApplicationId appId, ApplicationFinishData appFinish ) : base(WritingHistoryEventType.AppFinish) { this.appId = appId; this.appFinish = appFinish; }
/// <exception cref="System.IO.IOException"/> public virtual void ApplicationFinished(ApplicationFinishData appFinish) { FileSystemApplicationHistoryStore.HistoryFileWriter hfWriter = GetHistoryFileWriter (appFinish.GetApplicationId()); System.Diagnostics.Debug.Assert(appFinish is ApplicationFinishDataPBImpl); try { hfWriter.WriteHistoryData(new FileSystemApplicationHistoryStore.HistoryDataKey(appFinish .GetApplicationId().ToString(), FinishDataSuffix), ((ApplicationFinishDataPBImpl )appFinish).GetProto().ToByteArray()); Log.Info("Finish information of application " + appFinish.GetApplicationId() + " is written" ); } catch (IOException e) { Log.Error("Error when writing finish information of application " + appFinish.GetApplicationId (), e); throw; } finally { hfWriter.Close(); Sharpen.Collections.Remove(outstandingWriters, appFinish.GetApplicationId()); } }
private static void MergeApplicationHistoryData(ApplicationHistoryData historyData , ApplicationFinishData finishData) { historyData.SetFinishTime(finishData.GetFinishTime()); historyData.SetDiagnosticsInfo(finishData.GetDiagnosticsInfo()); historyData.SetFinalApplicationStatus(finishData.GetFinalApplicationStatus()); historyData.SetYarnApplicationState(finishData.GetYarnApplicationState()); }
/// <exception cref="System.IO.IOException"/> public virtual ApplicationHistoryData GetApplication(ApplicationId appId) { FileSystemApplicationHistoryStore.HistoryFileReader hfReader = GetHistoryFileReader (appId); try { bool readStartData = false; bool readFinishData = false; ApplicationHistoryData historyData = ApplicationHistoryData.NewInstance(appId, null , null, null, null, long.MinValue, long.MinValue, long.MaxValue, null, FinalApplicationStatus .Undefined, null); while ((!readStartData || !readFinishData) && hfReader.HasNext()) { FileSystemApplicationHistoryStore.HistoryFileReader.Entry entry = hfReader.Next(); if (entry.key.id.Equals(appId.ToString())) { if (entry.key.suffix.Equals(StartDataSuffix)) { ApplicationStartData startData = ParseApplicationStartData(entry.value); MergeApplicationHistoryData(historyData, startData); readStartData = true; } else { if (entry.key.suffix.Equals(FinishDataSuffix)) { ApplicationFinishData finishData = ParseApplicationFinishData(entry.value); MergeApplicationHistoryData(historyData, finishData); readFinishData = true; } } } } if (!readStartData && !readFinishData) { return(null); } if (!readStartData) { Log.Warn("Start information is missing for application " + appId); } if (!readFinishData) { Log.Warn("Finish information is missing for application " + appId); } Log.Info("Completed reading history information of application " + appId); return(historyData); } catch (IOException e) { Log.Error("Error when reading history file of application " + appId, e); throw; } finally { hfReader.Close(); } }
/// <exception cref="System.IO.IOException"/> public virtual void ApplicationFinished(ApplicationFinishData appFinish) { ApplicationHistoryData data = applicationData[appFinish.GetApplicationId()]; if (data == null) { throw new IOException("The finish information of application " + appFinish.GetApplicationId () + " is stored before the start" + " information."); } // Make the assumption that YarnApplicationState should not be null if // the finish information is already recorded if (data.GetYarnApplicationState() != null) { throw new IOException("The finish information of application " + appFinish.GetApplicationId () + " is already stored."); } data.SetFinishTime(appFinish.GetFinishTime()); data.SetDiagnosticsInfo(appFinish.GetDiagnosticsInfo()); data.SetFinalApplicationStatus(appFinish.GetFinalApplicationStatus()); data.SetYarnApplicationState(appFinish.GetYarnApplicationState()); }
/// <exception cref="System.IO.IOException"/> public virtual void ApplicationFinished(ApplicationFinishData appFinish) { }
public virtual void ApplicationFinished(RMApp app, RMAppState finalState) { if (historyServiceEnabled) { dispatcher.GetEventHandler().Handle(new WritingApplicationFinishEvent(app.GetApplicationId (), ApplicationFinishData.NewInstance(app.GetApplicationId(), app.GetFinishTime( ), app.GetDiagnostics().ToString(), app.GetFinalApplicationStatus(), RMServerUtils .CreateApplicationState(finalState)))); } }
/// <exception cref="System.IO.IOException"/> protected internal virtual void WriteApplicationFinishData(ApplicationId appId) { store.ApplicationFinished(ApplicationFinishData.NewInstance(appId, 0, appId.ToString (), FinalApplicationStatus.Undefined, YarnApplicationState.Finished)); }