YARN-5210 NPE in Distributed Shell while publishing DS_CONTAINER_START event (Varun Saxena via Vrushali C)

This commit is contained in:
Vrushali Channapattan 2016-06-09 11:36:52 -07:00 committed by Sangjin Lee
parent c65020075e
commit 3832795e3c

View File

@ -979,16 +979,13 @@ public void onContainerStarted(ContainerId containerId,
} }
Container container = containers.get(containerId); Container container = containers.get(containerId);
if (container != null) { if (container != null) {
applicationMaster.nmClientAsync.getContainerStatusAsync(containerId, container.getNodeId()); applicationMaster.nmClientAsync.getContainerStatusAsync(
containerId, container.getNodeId());
} }
if(applicationMaster.timelineClient != null) { if(applicationMaster.timelineClient != null) {
applicationMaster.publishContainerStartEvent(
applicationMaster.timelineClient, container,
applicationMaster.domainId, applicationMaster.appSubmitterUgi);
if (applicationMaster.timelineServiceV2) { if (applicationMaster.timelineServiceV2) {
applicationMaster.publishContainerStartEventOnTimelineServiceV2( applicationMaster.publishContainerStartEventOnTimelineServiceV2(
container); container);
} else { } else {
applicationMaster.publishContainerStartEvent( applicationMaster.publishContainerStartEvent(
applicationMaster.timelineClient, container, applicationMaster.timelineClient, container,
@ -1355,12 +1352,13 @@ private void publishContainerStartEventOnTimelineServiceV2(
new org.apache.hadoop.yarn.api.records.timelineservice.TimelineEntity(); new org.apache.hadoop.yarn.api.records.timelineservice.TimelineEntity();
entity.setId(container.getId().toString()); entity.setId(container.getId().toString());
entity.setType(DSEntity.DS_CONTAINER.toString()); entity.setType(DSEntity.DS_CONTAINER.toString());
//entity.setDomainId(domainId); long ts = System.currentTimeMillis();
entity.setCreatedTime(ts);
entity.addInfo("user", appSubmitterUgi.getShortUserName()); entity.addInfo("user", appSubmitterUgi.getShortUserName());
org.apache.hadoop.yarn.api.records.timelineservice.TimelineEvent event = org.apache.hadoop.yarn.api.records.timelineservice.TimelineEvent event =
new org.apache.hadoop.yarn.api.records.timelineservice.TimelineEvent(); new org.apache.hadoop.yarn.api.records.timelineservice.TimelineEvent();
event.setTimestamp(System.currentTimeMillis()); event.setTimestamp(ts);
event.setId(DSEvent.DS_CONTAINER_START.toString()); event.setId(DSEvent.DS_CONTAINER_START.toString());
event.addInfo("Node", container.getNodeId().toString()); event.addInfo("Node", container.getNodeId().toString());
event.addInfo("Resources", container.getResource().toString()); event.addInfo("Resources", container.getResource().toString());
@ -1418,12 +1416,15 @@ private void publishApplicationAttemptEventOnTimelineServiceV2(
new org.apache.hadoop.yarn.api.records.timelineservice.TimelineEntity(); new org.apache.hadoop.yarn.api.records.timelineservice.TimelineEntity();
entity.setId(appAttemptID.toString()); entity.setId(appAttemptID.toString());
entity.setType(DSEntity.DS_APP_ATTEMPT.toString()); entity.setType(DSEntity.DS_APP_ATTEMPT.toString());
//entity.setDomainId(domainId); long ts = System.currentTimeMillis();
if (appEvent == DSEvent.DS_APP_ATTEMPT_START) {
entity.setCreatedTime(ts);
}
entity.addInfo("user", appSubmitterUgi.getShortUserName()); entity.addInfo("user", appSubmitterUgi.getShortUserName());
org.apache.hadoop.yarn.api.records.timelineservice.TimelineEvent event = org.apache.hadoop.yarn.api.records.timelineservice.TimelineEvent event =
new org.apache.hadoop.yarn.api.records.timelineservice.TimelineEvent(); new org.apache.hadoop.yarn.api.records.timelineservice.TimelineEvent();
event.setId(appEvent.toString()); event.setId(appEvent.toString());
event.setTimestamp(System.currentTimeMillis()); event.setTimestamp(ts);
entity.addEvent(event); entity.addEvent(event);
try { try {