MAPREDUCE-6610. JobHistoryEventHandler should not swallow timeline response. Contributed by Li Lu

This commit is contained in:
Jian He 2016-01-25 23:01:03 -08:00
parent 0271fb1f18
commit b6fe3c20c5
2 changed files with 20 additions and 1 deletions

View File

@ -394,6 +394,9 @@ Release 2.8.0 - UNRELEASED
MAPREDUCE-6614. Remove unnecessary code in TestMapreduceConfigFields.
(Kai Sasaki via aajisaka)
MAPREDUCE-6610. JobHistoryEventHandler should not swallow timeline response
(Li Lu via jianhe)
Release 2.7.3 - UNRELEASED
INCOMPATIBLE CHANGES

View File

@ -23,6 +23,7 @@ import java.util.Collections;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;
@ -63,6 +64,7 @@ import org.apache.hadoop.service.AbstractService;
import org.apache.hadoop.util.StringUtils;
import org.apache.hadoop.yarn.api.records.timeline.TimelineEntity;
import org.apache.hadoop.yarn.api.records.timeline.TimelineEvent;
import org.apache.hadoop.yarn.api.records.timeline.TimelinePutResponse;
import org.apache.hadoop.yarn.client.api.TimelineClient;
import org.apache.hadoop.yarn.conf.YarnConfiguration;
import org.apache.hadoop.yarn.event.EventHandler;
@ -1013,7 +1015,21 @@ public class JobHistoryEventHandler extends AbstractService
}
try {
timelineClient.putEntities(tEntity);
TimelinePutResponse response = timelineClient.putEntities(tEntity);
List<TimelinePutResponse.TimelinePutError> errors = response.getErrors();
if (errors.size() == 0) {
if (LOG.isDebugEnabled()) {
LOG.debug("Timeline entities are successfully put in event " + event
.getEventType());
}
} else {
for (TimelinePutResponse.TimelinePutError error : errors) {
LOG.error(
"Error when publishing entity [" + error.getEntityType() + ","
+ error.getEntityId() + "], server side error code: "
+ error.getErrorCode());
}
}
} catch (IOException ex) {
LOG.error("Error putting entity " + tEntity.getEntityId() + " to Timeline"
+ "Server", ex);