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

(cherry picked from commit 4ff973f96a)
(cherry picked from commit 7c604c3d06)
This commit is contained in:
Jonathan Eagles 2015-12-07 15:04:48 -06:00 committed by Wangda Tan
parent 46cb47c03e
commit c4ae007fd4
4 changed files with 24 additions and 2 deletions

View File

@ -1110,6 +1110,9 @@ Release 2.7.3 - UNRELEASED
YARN-4398. Remove unnecessary synchronization in RMStateStore. (Ning Ding 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

@ -188,7 +188,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()));
}
}
@ -419,6 +420,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);