YARN-4422. Generic AHS sometimes doesn't show started, node, or logs on App page (Eric Payne via jeagles)
(cherry picked from commit 4ff973f96a
)
This commit is contained in:
parent
670617f325
commit
22be47d747
|
@ -43,6 +43,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
|
||||
|
|
|
@ -418,6 +418,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());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -168,7 +168,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()));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -359,6 +360,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);
|
||||
|
|
Loading…
Reference in New Issue