diff --git a/hadoop-mapreduce-project/CHANGES.txt b/hadoop-mapreduce-project/CHANGES.txt index 4fb1e8d9bcf..dd64b02370e 100644 --- a/hadoop-mapreduce-project/CHANGES.txt +++ b/hadoop-mapreduce-project/CHANGES.txt @@ -7,6 +7,10 @@ Release 2.0.5-beta - UNRELEASED MAPREDUCE-4067. Changed MRClientProtocol api to throw IOException only (Xuan Gong via vinodkv) + MAPREDUCE-5234. Change mapred.TaskReport and mapreduce.TaskReport for binary + compatibility with mapred in 1.x but incompatible with 0.23.x. (Mayank Bansal + via vinodkv) + NEW FEATURES IMPROVEMENTS diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/TaskReport.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/TaskReport.java index 1aed3e0c225..8d2fe7fef64 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/TaskReport.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/TaskReport.java @@ -75,7 +75,7 @@ public TaskReport() { static TaskReport downgrade( org.apache.hadoop.mapreduce.TaskReport report) { - return new TaskReport(TaskID.downgrade(report.getTaskId()), + return new TaskReport(TaskID.downgrade(report.getTaskID()), report.getProgress(), report.getState(), report.getDiagnostics(), report.getCurrentStatus(), report.getStartTime(), report.getFinishTime(), Counters.downgrade(report.getTaskCounters())); @@ -90,9 +90,16 @@ static TaskReport[] downgradeArray(org.apache.hadoop. return ret.toArray(new TaskReport[0]); } + /** The string of the task id. */ + public String getTaskId() { + return TaskID.downgrade(super.getTaskID()).toString(); + } + /** The id of the task. */ - public TaskID getTaskID() { return TaskID.downgrade(super.getTaskId()); } - + public TaskID getTaskID() { + return TaskID.downgrade(super.getTaskID()); + } + public Counters getCounters() { return Counters.downgrade(super.getTaskCounters()); } diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/TaskReport.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/TaskReport.java index d86d16ebfaf..9f00fee5f4e 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/TaskReport.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/TaskReport.java @@ -30,6 +30,7 @@ import org.apache.hadoop.io.Writable; import org.apache.hadoop.io.WritableUtils; import org.apache.hadoop.mapred.TIPStatus; +import org.apache.hadoop.mapred.TaskID; import org.apache.hadoop.util.StringInterner; /** A report on the state of a task. */ @@ -76,9 +77,16 @@ public TaskReport(TaskID taskid, float progress, String state, this.finishTime = finishTime; this.counters = counters; } - - /** The id of the task. */ - public TaskID getTaskId() { return taskid; } + + /** The string of the task ID. */ + public String getTaskId() { + return taskid.toString(); + } + + /** The ID of the task. */ + public TaskID getTaskID() { + return taskid; + } /** The amount completed, between zero and one. */ public float getProgress() { return progress; } @@ -171,7 +179,7 @@ public boolean equals(Object o) { && this.progress == report.getProgress() && this.startTime == report.getStartTime() && this.state.equals(report.getState()) - && this.taskid.equals(report.getTaskId()); + && this.taskid.equals(report.getTaskID()); } return false; } diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/test/java/org/apache/hadoop/mapred/TestJobInfo.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/test/java/org/apache/hadoop/mapred/TestJobInfo.java index 84c5850d179..507b9782fe0 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/test/java/org/apache/hadoop/mapred/TestJobInfo.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/test/java/org/apache/hadoop/mapred/TestJobInfo.java @@ -26,6 +26,11 @@ import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.Text; +import org.apache.hadoop.mapreduce.JobID; +import org.apache.hadoop.mapreduce.TaskID; +import org.apache.hadoop.mapreduce.TaskType; +import org.apache.hadoop.mapreduce.JobStatus.State; +import org.junit.Assert; import org.junit.Test; import static org.junit.Assert.*; @@ -53,4 +58,20 @@ public void testJobInfo() throws IOException { assertEquals(info.getUser().toString(), copyinfo.getUser().toString()); } + + @Test(timeout = 5000) + public void testTaskID() throws IOException, InterruptedException { + JobID jobid = new JobID("1014873536921", 6); + TaskID tid = new TaskID(jobid, TaskType.MAP, 0); + org.apache.hadoop.mapred.TaskID tid1 = + org.apache.hadoop.mapred.TaskID.downgrade(tid); + org.apache.hadoop.mapred.TaskReport treport = + new org.apache.hadoop.mapred.TaskReport(tid1, 0.0f, + State.FAILED.toString(), null, TIPStatus.FAILED, 100, 100, + new org.apache.hadoop.mapred.Counters()); + Assert + .assertEquals(treport.getTaskId(), "task_1014873536921_0006_m_000000"); + Assert.assertEquals(treport.getTaskID().toString(), + "task_1014873536921_0006_m_000000"); + } }