List of usage examples for org.apache.hadoop.yarn.server.resourcemanager.recovery.records.impl.pb ApplicationStateDataPBImpl getApplicationSubmissionContext
@Override
public ApplicationSubmissionContext getApplicationSubmissionContext()
From source file:io.hops.metadata.util.RMUtilities.java
License:Apache License
/** * Retrieve applications (RMApp, RMAppAttempt) from NDB. MUST be used only * by ResourceTrackerService as some fields of the objects are not set. * * @param rmContext/*from w w w. j a v a 2s . co m*/ * @param conf * @param applicationId * @return * @throws java.io.IOException */ public static RMApp getRMApp(RMContext rmContext, Configuration conf, String applicationId) throws IOException { //Retrieve all applicationIds from NDB ApplicationState hopAppState = RMUtilities.getApplicationState(applicationId); if (hopAppState != null) { //Create ApplicationState for every application ApplicationId appId = ConverterUtils.toApplicationId(hopAppState.getApplicationid()); ApplicationStateDataPBImpl appStateData = new ApplicationStateDataPBImpl( ApplicationStateDataProto.parseFrom(hopAppState.getAppstate())); RMStateStore.ApplicationState appState = new RMStateStore.ApplicationState(appStateData.getSubmitTime(), appStateData.getStartTime(), appStateData.getApplicationSubmissionContext(), appStateData.getUser(), appStateData.getState(), appStateData.getDiagnostics(), appStateData.getFinishTime(), appStateData.getStateBeforeKilling(), appStateData.getUpdatedNodesId()); LOG.debug("loadRMAppState for app " + appState.getAppId() + " state " + appState.getState()); //Create RMApp //Null fields are not required by ResourceTrackerService RMAppImpl application = new RMAppImpl(appId, rmContext, conf, appState.getApplicationSubmissionContext().getApplicationName(), appState.getUser(), appState.getApplicationSubmissionContext().getQueue(), appState.getApplicationSubmissionContext(), null, null, appState.getSubmitTime(), appState.getApplicationSubmissionContext().getApplicationType(), appState.getApplicationSubmissionContext().getApplicationTags(), null); ApplicationAttemptId appAttemptId = ApplicationAttemptId.newInstance(appId, appState.getAttemptCount() + 1); ApplicationAttemptState hopAppAttemptState = RMUtilities.getApplicationAttemptState(applicationId, appAttemptId.toString()); if (hopAppAttemptState != null) { ApplicationAttemptStateDataPBImpl attemptStateData = new ApplicationAttemptStateDataPBImpl( YarnServerResourceManagerServiceProtos.ApplicationAttemptStateDataProto .parseFrom(hopAppAttemptState.getApplicationattemptstate())); RMAppAttempt attempt = new RMAppAttemptImpl(appAttemptId, rmContext, null, null, appState.getApplicationSubmissionContext(), conf, application.getMaxAppAttempts() == application.getAppAttempts().size()); ((RMAppAttemptImpl) attempt).setMasterContainer(attemptStateData.getMasterContainer()); application.addRMAppAttempt(appAttemptId, attempt); return application; } } return null; }