YARN-4422. Generic AHS sometimes doesn't show started, node, or logs on App page (Eric Payne via jeagles)
This commit is contained in:
parent
4546c7582b
commit
4ff973f96a
|
@ -1149,6 +1149,9 @@ Release 2.7.3 - UNRELEASED
|
||||||
(with application having id > 9999) (Mohammad Shahid Khan & Varun Saxena
|
(with application having id > 9999) (Mohammad Shahid Khan & Varun Saxena
|
||||||
via jianhe)
|
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
|
Release 2.7.2 - UNRELEASED
|
||||||
|
|
||||||
INCOMPATIBLE CHANGES
|
INCOMPATIBLE CHANGES
|
||||||
|
|
|
@ -488,6 +488,13 @@ public class ApplicationHistoryManagerOnTimelineStore extends AbstractService
|
||||||
AppAttemptMetricsConstants.STATE_EVENT_INFO)
|
AppAttemptMetricsConstants.STATE_EVENT_INFO)
|
||||||
.toString());
|
.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;
|
package org.apache.hadoop.yarn.server.resourcemanager.metrics;
|
||||||
|
|
||||||
import org.apache.hadoop.yarn.api.records.ApplicationAttemptId;
|
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.FinalApplicationStatus;
|
||||||
import org.apache.hadoop.yarn.api.records.YarnApplicationAttemptState;
|
import org.apache.hadoop.yarn.api.records.YarnApplicationAttemptState;
|
||||||
|
|
||||||
|
@ -31,6 +32,7 @@ public class AppAttemptFinishedEvent extends
|
||||||
private String diagnosticsInfo;
|
private String diagnosticsInfo;
|
||||||
private FinalApplicationStatus appStatus;
|
private FinalApplicationStatus appStatus;
|
||||||
private YarnApplicationAttemptState state;
|
private YarnApplicationAttemptState state;
|
||||||
|
private ContainerId masterContainerId;
|
||||||
|
|
||||||
public AppAttemptFinishedEvent(
|
public AppAttemptFinishedEvent(
|
||||||
ApplicationAttemptId appAttemptId,
|
ApplicationAttemptId appAttemptId,
|
||||||
|
@ -39,7 +41,8 @@ public class AppAttemptFinishedEvent extends
|
||||||
String diagnosticsInfo,
|
String diagnosticsInfo,
|
||||||
FinalApplicationStatus appStatus,
|
FinalApplicationStatus appStatus,
|
||||||
YarnApplicationAttemptState state,
|
YarnApplicationAttemptState state,
|
||||||
long finishedTime) {
|
long finishedTime,
|
||||||
|
ContainerId masterContainerId) {
|
||||||
super(SystemMetricsEventType.APP_ATTEMPT_FINISHED, finishedTime);
|
super(SystemMetricsEventType.APP_ATTEMPT_FINISHED, finishedTime);
|
||||||
this.appAttemptId = appAttemptId;
|
this.appAttemptId = appAttemptId;
|
||||||
// This is the tracking URL after the application attempt is finished
|
// This is the tracking URL after the application attempt is finished
|
||||||
|
@ -48,6 +51,7 @@ public class AppAttemptFinishedEvent extends
|
||||||
this.diagnosticsInfo = diagnosticsInfo;
|
this.diagnosticsInfo = diagnosticsInfo;
|
||||||
this.appStatus = appStatus;
|
this.appStatus = appStatus;
|
||||||
this.state = state;
|
this.state = state;
|
||||||
|
this.masterContainerId = masterContainerId;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -79,4 +83,8 @@ public class AppAttemptFinishedEvent extends
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ContainerId getMasterContainerId() {
|
||||||
|
return masterContainerId;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -186,7 +186,8 @@ public class SystemMetricsPublisher extends CompositeService {
|
||||||
// based on app state if it doesn't exist
|
// based on app state if it doesn't exist
|
||||||
app.getFinalApplicationStatus(),
|
app.getFinalApplicationStatus(),
|
||||||
RMServerUtils.createApplicationAttemptState(appAttemtpState),
|
RMServerUtils.createApplicationAttemptState(appAttemtpState),
|
||||||
finishedTime));
|
finishedTime,
|
||||||
|
appAttempt.getMasterContainer().getId()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -416,6 +417,9 @@ public class SystemMetricsPublisher extends CompositeService {
|
||||||
event.getFinalApplicationStatus().toString());
|
event.getFinalApplicationStatus().toString());
|
||||||
eventInfo.put(AppAttemptMetricsConstants.STATE_EVENT_INFO,
|
eventInfo.put(AppAttemptMetricsConstants.STATE_EVENT_INFO,
|
||||||
event.getYarnApplicationAttemptState().toString());
|
event.getYarnApplicationAttemptState().toString());
|
||||||
|
eventInfo.put(
|
||||||
|
AppAttemptMetricsConstants.MASTER_CONTAINER_EVENT_INFO,
|
||||||
|
event.getMasterContainerId().toString());
|
||||||
tEvent.setEventInfo(eventInfo);
|
tEvent.setEventInfo(eventInfo);
|
||||||
entity.addEvent(tEvent);
|
entity.addEvent(tEvent);
|
||||||
putEntity(entity);
|
putEntity(entity);
|
||||||
|
|
Loading…
Reference in New Issue