YARN-4422. Generic AHS sometimes doesn't show started, node, or logs on App page (Eric Payne via jeagles)

This commit is contained in:
Jonathan Eagles 2015-12-07 15:04:48 -06:00
parent 4546c7582b
commit 4ff973f96a
4 changed files with 24 additions and 2 deletions

View File

@ -1149,6 +1149,9 @@ Release 2.7.3 - UNRELEASED
(with application having id > 9999) Mohammad Shahid Khan & Varun Saxena
via jianhe)
YARN-4422. Generic AHS sometimes doesn't show started, node, or logs on App page
(Eric Payne via jeagles)
Release 2.7.2 - UNRELEASED
INCOMPATIBLE CHANGES

View File

@ -488,6 +488,13 @@ public class ApplicationHistoryManagerOnTimelineStore extends AbstractService
AppAttemptMetricsConstants.STATE_EVENT_INFO)
.toString());
}
if (eventInfo
.containsKey(AppAttemptMetricsConstants.MASTER_CONTAINER_EVENT_INFO)) {
amContainerId =
ConverterUtils.toContainerId(eventInfo.get(
AppAttemptMetricsConstants.MASTER_CONTAINER_EVENT_INFO)
.toString());
}
}
}
}

View File

@ -19,6 +19,7 @@
package org.apache.hadoop.yarn.server.resourcemanager.metrics;
import org.apache.hadoop.yarn.api.records.ApplicationAttemptId;
import org.apache.hadoop.yarn.api.records.ContainerId;
import org.apache.hadoop.yarn.api.records.FinalApplicationStatus;
import org.apache.hadoop.yarn.api.records.YarnApplicationAttemptState;
@ -31,6 +32,7 @@ public class AppAttemptFinishedEvent extends
private String diagnosticsInfo;
private FinalApplicationStatus appStatus;
private YarnApplicationAttemptState state;
private ContainerId masterContainerId;
public AppAttemptFinishedEvent(
ApplicationAttemptId appAttemptId,
@ -39,7 +41,8 @@ public class AppAttemptFinishedEvent extends
String diagnosticsInfo,
FinalApplicationStatus appStatus,
YarnApplicationAttemptState state,
long finishedTime) {
long finishedTime,
ContainerId masterContainerId) {
super(SystemMetricsEventType.APP_ATTEMPT_FINISHED, finishedTime);
this.appAttemptId = appAttemptId;
// This is the tracking URL after the application attempt is finished
@ -48,6 +51,7 @@ public class AppAttemptFinishedEvent extends
this.diagnosticsInfo = diagnosticsInfo;
this.appStatus = appStatus;
this.state = state;
this.masterContainerId = masterContainerId;
}
@Override
@ -79,4 +83,8 @@ public class AppAttemptFinishedEvent extends
return state;
}
public ContainerId getMasterContainerId() {
return masterContainerId;
}
}

View File

@ -186,7 +186,8 @@ public class SystemMetricsPublisher extends CompositeService {
// based on app state if it doesn't exist
app.getFinalApplicationStatus(),
RMServerUtils.createApplicationAttemptState(appAttemtpState),
finishedTime));
finishedTime,
appAttempt.getMasterContainer().getId()));
}
}
@ -416,6 +417,9 @@ public class SystemMetricsPublisher extends CompositeService {
event.getFinalApplicationStatus().toString());
eventInfo.put(AppAttemptMetricsConstants.STATE_EVENT_INFO,
event.getYarnApplicationAttemptState().toString());
eventInfo.put(
AppAttemptMetricsConstants.MASTER_CONTAINER_EVENT_INFO,
event.getMasterContainerId().toString());
tEvent.setEventInfo(eventInfo);
entity.addEvent(tEvent);
putEntity(entity);