MAPREDUCE-5939. StartTime showing up as the epoch time in JHS UI after upgrade. Contributed by Chen He
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1605892 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
f194aaa0d1
commit
cfd9344540
|
@ -273,6 +273,9 @@ Release 2.5.0 - UNRELEASED
|
||||||
MAPREDUCE-5924. Changed TaskAttemptImpl to ignore TA_COMMIT_PENDING event
|
MAPREDUCE-5924. Changed TaskAttemptImpl to ignore TA_COMMIT_PENDING event
|
||||||
at COMMIT_PENDING state. (Zhijie Shen via jianhe)
|
at COMMIT_PENDING state. (Zhijie Shen via jianhe)
|
||||||
|
|
||||||
|
MAPREDUCE-5939. StartTime showing up as the epoch time in JHS UI after
|
||||||
|
upgrade (Chen He via jlowe)
|
||||||
|
|
||||||
Release 2.4.1 - 2014-06-23
|
Release 2.4.1 - 2014-06-23
|
||||||
|
|
||||||
INCOMPATIBLE CHANGES
|
INCOMPATIBLE CHANGES
|
||||||
|
|
|
@ -168,10 +168,14 @@ public static JobIndexInfo getIndexInfo(String jhFileName) throws IOException {
|
||||||
decodeJobHistoryFileName(jobDetails[QUEUE_NAME_INDEX]));
|
decodeJobHistoryFileName(jobDetails[QUEUE_NAME_INDEX]));
|
||||||
|
|
||||||
try{
|
try{
|
||||||
indexInfo.setJobStartTime(
|
if (jobDetails.length <= JOB_START_TIME_INDEX) {
|
||||||
Long.parseLong(decodeJobHistoryFileName(jobDetails[JOB_START_TIME_INDEX])));
|
indexInfo.setJobStartTime(indexInfo.getSubmitTime());
|
||||||
|
} else {
|
||||||
|
indexInfo.setJobStartTime(
|
||||||
|
Long.parseLong(decodeJobHistoryFileName(jobDetails[JOB_START_TIME_INDEX])));
|
||||||
|
}
|
||||||
} catch (NumberFormatException e){
|
} catch (NumberFormatException e){
|
||||||
LOG.warn("Unable to parse launch time from job history file "
|
LOG.warn("Unable to parse start time from job history file "
|
||||||
+ jhFileName + " : " + e);
|
+ jhFileName + " : " + e);
|
||||||
}
|
}
|
||||||
} catch (IndexOutOfBoundsException e) {
|
} catch (IndexOutOfBoundsException e) {
|
||||||
|
|
|
@ -39,6 +39,17 @@ public class TestFileNameIndexUtils {
|
||||||
+ FileNameIndexUtils.DELIMITER + "%s"
|
+ FileNameIndexUtils.DELIMITER + "%s"
|
||||||
+ JobHistoryUtils.JOB_HISTORY_FILE_EXTENSION;
|
+ JobHistoryUtils.JOB_HISTORY_FILE_EXTENSION;
|
||||||
|
|
||||||
|
private static final String OLD_FORMAT_BEFORE_ADD_START_TIME = "%s"
|
||||||
|
+ FileNameIndexUtils.DELIMITER + "%s"
|
||||||
|
+ FileNameIndexUtils.DELIMITER + "%s"
|
||||||
|
+ FileNameIndexUtils.DELIMITER + "%s"
|
||||||
|
+ FileNameIndexUtils.DELIMITER + "%s"
|
||||||
|
+ FileNameIndexUtils.DELIMITER + "%s"
|
||||||
|
+ FileNameIndexUtils.DELIMITER + "%s"
|
||||||
|
+ FileNameIndexUtils.DELIMITER + "%s"
|
||||||
|
+ FileNameIndexUtils.DELIMITER + "%s"
|
||||||
|
+ JobHistoryUtils.JOB_HISTORY_FILE_EXTENSION;
|
||||||
|
|
||||||
private static final String JOB_HISTORY_FILE_FORMATTER = "%s"
|
private static final String JOB_HISTORY_FILE_FORMATTER = "%s"
|
||||||
+ FileNameIndexUtils.DELIMITER + "%s"
|
+ FileNameIndexUtils.DELIMITER + "%s"
|
||||||
+ FileNameIndexUtils.DELIMITER + "%s"
|
+ FileNameIndexUtils.DELIMITER + "%s"
|
||||||
|
@ -235,6 +246,22 @@ public void testQueueNamePercentDecoding() throws IOException {
|
||||||
QUEUE_NAME_WITH_DELIMITER, info.getQueueName());
|
QUEUE_NAME_WITH_DELIMITER, info.getQueueName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testJobStartTimeBackwardsCompatible() throws IOException{
|
||||||
|
String jobHistoryFile = String.format(OLD_FORMAT_BEFORE_ADD_START_TIME,
|
||||||
|
JOB_ID,
|
||||||
|
SUBMIT_TIME,
|
||||||
|
USER_NAME,
|
||||||
|
JOB_NAME_WITH_DELIMITER_ESCAPE,
|
||||||
|
FINISH_TIME,
|
||||||
|
NUM_MAPS,
|
||||||
|
NUM_REDUCES,
|
||||||
|
JOB_STATUS,
|
||||||
|
QUEUE_NAME );
|
||||||
|
JobIndexInfo info = FileNameIndexUtils.getIndexInfo(jobHistoryFile);
|
||||||
|
Assert.assertEquals(info.getJobStartTime(), info.getSubmitTime());
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testJobHistoryFileNameBackwardsCompatible() throws IOException {
|
public void testJobHistoryFileNameBackwardsCompatible() throws IOException {
|
||||||
JobID oldJobId = JobID.forName(JOB_ID);
|
JobID oldJobId = JobID.forName(JOB_ID);
|
||||||
|
|
Loading…
Reference in New Issue