MAPREDUCE-5316. job -list-attempt-ids command does not handle illegal task-state. Contributed by Ashwin Shankar
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1494292 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
1bb3aad637
commit
20a950a374
|
@ -12,6 +12,9 @@ Release 2.3.0 - UNRELEASED
|
||||||
|
|
||||||
BUG FIXES
|
BUG FIXES
|
||||||
|
|
||||||
|
MAPREDUCE-5316. job -list-attempt-ids command does not handle illegal
|
||||||
|
task-state (Ashwin Shankar via jlowe)
|
||||||
|
|
||||||
Release 2.2.0 - UNRELEASED
|
Release 2.2.0 - UNRELEASED
|
||||||
|
|
||||||
INCOMPATIBLE CHANGES
|
INCOMPATIBLE CHANGES
|
||||||
|
@ -1045,6 +1048,9 @@ Release 0.23.9 - UNRELEASED
|
||||||
MAPREDUCE-4019. -list-attempt-ids is not working (Ashwin Shankar,
|
MAPREDUCE-4019. -list-attempt-ids is not working (Ashwin Shankar,
|
||||||
Devaraj K, and B Anil Kumar via jlowe)
|
Devaraj K, and B Anil Kumar via jlowe)
|
||||||
|
|
||||||
|
MAPREDUCE-5316. job -list-attempt-ids command does not handle illegal
|
||||||
|
task-state (Ashwin Shankar via jlowe)
|
||||||
|
|
||||||
Release 0.23.8 - 2013-06-05
|
Release 0.23.8 - 2013-06-05
|
||||||
|
|
||||||
INCOMPATIBLE CHANGES
|
INCOMPATIBLE CHANGES
|
||||||
|
|
|
@ -22,9 +22,9 @@ import java.io.OutputStreamWriter;
|
||||||
import java.io.PrintWriter;
|
import java.io.PrintWriter;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.HashSet;
|
|
||||||
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
|
@ -68,7 +68,9 @@ public class CLI extends Configured implements Tool {
|
||||||
protected Cluster cluster;
|
protected Cluster cluster;
|
||||||
private static final Set<String> taskTypes = new HashSet<String>(
|
private static final Set<String> taskTypes = new HashSet<String>(
|
||||||
Arrays.asList("MAP", "REDUCE"));
|
Arrays.asList("MAP", "REDUCE"));
|
||||||
|
private final Set<String> taskStates = new HashSet<String>(Arrays.asList(
|
||||||
|
"running", "completed", "pending", "failed", "killed"));
|
||||||
|
|
||||||
public CLI() {
|
public CLI() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -221,7 +223,12 @@ public class CLI extends Configured implements Tool {
|
||||||
taskState = argv[3];
|
taskState = argv[3];
|
||||||
displayTasks = true;
|
displayTasks = true;
|
||||||
if (!taskTypes.contains(taskType.toUpperCase())) {
|
if (!taskTypes.contains(taskType.toUpperCase())) {
|
||||||
System.out.println("Error: Invalid task-type: "+taskType);
|
System.out.println("Error: Invalid task-type: " + taskType);
|
||||||
|
displayUsage(cmd);
|
||||||
|
return exitCode;
|
||||||
|
}
|
||||||
|
if (!taskStates.contains(taskState.toLowerCase())) {
|
||||||
|
System.out.println("Error: Invalid task-state: " + taskState);
|
||||||
displayUsage(cmd);
|
displayUsage(cmd);
|
||||||
return exitCode;
|
return exitCode;
|
||||||
}
|
}
|
||||||
|
@ -569,11 +576,11 @@ public class CLI extends Configured implements Tool {
|
||||||
TaskReport[] reports = job.getTaskReports(TaskType.valueOf(type.toUpperCase()));
|
TaskReport[] reports = job.getTaskReports(TaskType.valueOf(type.toUpperCase()));
|
||||||
for (TaskReport report : reports) {
|
for (TaskReport report : reports) {
|
||||||
TIPStatus status = report.getCurrentStatus();
|
TIPStatus status = report.getCurrentStatus();
|
||||||
if ((state.equals("pending") && status ==TIPStatus.PENDING) ||
|
if ((state.equalsIgnoreCase("pending") && status ==TIPStatus.PENDING) ||
|
||||||
(state.equals("running") && status ==TIPStatus.RUNNING) ||
|
(state.equalsIgnoreCase("running") && status ==TIPStatus.RUNNING) ||
|
||||||
(state.equals("completed") && status == TIPStatus.COMPLETE) ||
|
(state.equalsIgnoreCase("completed") && status == TIPStatus.COMPLETE) ||
|
||||||
(state.equals("failed") && status == TIPStatus.FAILED) ||
|
(state.equalsIgnoreCase("failed") && status == TIPStatus.FAILED) ||
|
||||||
(state.equals("killed") && status == TIPStatus.KILLED)) {
|
(state.equalsIgnoreCase("killed") && status == TIPStatus.KILLED)) {
|
||||||
printTaskAttempts(report);
|
printTaskAttempts(report);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,13 +58,19 @@ public class TestCLI {
|
||||||
int retCode_REDUCE = cli.run(new String[] { "-list-attempt-ids", jobIdStr,
|
int retCode_REDUCE = cli.run(new String[] { "-list-attempt-ids", jobIdStr,
|
||||||
"REDUCE", "running" });
|
"REDUCE", "running" });
|
||||||
|
|
||||||
|
int retCode_completed = cli.run(new String[] { "-list-attempt-ids",
|
||||||
|
jobIdStr, "REDUCE", "completed" });
|
||||||
|
|
||||||
assertEquals("MAP is a valid input,exit code should be 0", 0, retCode_MAP);
|
assertEquals("MAP is a valid input,exit code should be 0", 0, retCode_MAP);
|
||||||
assertEquals("map is a valid input,exit code should be 0", 0, retCode_map);
|
assertEquals("map is a valid input,exit code should be 0", 0, retCode_map);
|
||||||
assertEquals("REDUCE is a valid input,exit code should be 0", 0,
|
assertEquals("REDUCE is a valid input,exit code should be 0", 0,
|
||||||
retCode_REDUCE);
|
retCode_REDUCE);
|
||||||
|
assertEquals(
|
||||||
|
"REDUCE and completed are a valid inputs to -list-attempt-ids,exit code should be 0",
|
||||||
|
0, retCode_completed);
|
||||||
|
|
||||||
verify(job, times(2)).getTaskReports(TaskType.MAP);
|
verify(job, times(2)).getTaskReports(TaskType.MAP);
|
||||||
verify(job, times(1)).getTaskReports(TaskType.REDUCE);
|
verify(job, times(2)).getTaskReports(TaskType.REDUCE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -79,13 +85,19 @@ public class TestCLI {
|
||||||
|
|
||||||
int retCode_JOB_SETUP = cli.run(new String[] { "-list-attempt-ids",
|
int retCode_JOB_SETUP = cli.run(new String[] { "-list-attempt-ids",
|
||||||
jobIdStr, "JOB_SETUP", "running" });
|
jobIdStr, "JOB_SETUP", "running" });
|
||||||
|
|
||||||
int retCode_JOB_CLEANUP = cli.run(new String[] { "-list-attempt-ids",
|
int retCode_JOB_CLEANUP = cli.run(new String[] { "-list-attempt-ids",
|
||||||
jobIdStr, "JOB_CLEANUP", "running" });
|
jobIdStr, "JOB_CLEANUP", "running" });
|
||||||
|
|
||||||
assertEquals("JOB_SETUP is a invalid input,exit code should be -1", -1,
|
int retCode_invalidTaskState = cli.run(new String[] { "-list-attempt-ids",
|
||||||
|
jobIdStr, "REDUCE", "complete" });
|
||||||
|
|
||||||
|
assertEquals("JOB_SETUP is an invalid input,exit code should be -1", -1,
|
||||||
retCode_JOB_SETUP);
|
retCode_JOB_SETUP);
|
||||||
assertEquals("JOB_CLEANUP is a invalid input,exit code should be -1", -1,
|
assertEquals("JOB_CLEANUP is an invalid input,exit code should be -1", -1,
|
||||||
retCode_JOB_CLEANUP);
|
retCode_JOB_CLEANUP);
|
||||||
|
assertEquals("complete is an invalid input,exit code should be -1", -1,
|
||||||
|
retCode_invalidTaskState);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue