You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by aa...@apache.org on 2015/03/20 10:48:49 UTC
hadoop git commit: MAPREDUCE-4424. 'mapred job -list' command should
show the job name as well. Contributed by Avinash Kujur.
Repository: hadoop
Updated Branches:
refs/heads/trunk 978ef11f2 -> 8041267f0
MAPREDUCE-4424. 'mapred job -list' command should show the job name as well. Contributed by Avinash Kujur.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/8041267f
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/8041267f
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/8041267f
Branch: refs/heads/trunk
Commit: 8041267f022f7d9d8c99363c37b86895dbd9ade3
Parents: 978ef11
Author: Akira Ajisaka <aa...@apache.org>
Authored: Fri Mar 20 18:46:51 2015 +0900
Committer: Akira Ajisaka <aa...@apache.org>
Committed: Fri Mar 20 18:46:51 2015 +0900
----------------------------------------------------------------------
hadoop-mapreduce-project/CHANGES.txt | 3 ++
.../org/apache/hadoop/mapreduce/tools/CLI.java | 19 +++++----
.../hadoop/mapreduce/TestMRJobClient.java | 43 ++++++++++++++++++++
3 files changed, 57 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/8041267f/hadoop-mapreduce-project/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-mapreduce-project/CHANGES.txt b/hadoop-mapreduce-project/CHANGES.txt
index 10c9389..2a4bf0c 100644
--- a/hadoop-mapreduce-project/CHANGES.txt
+++ b/hadoop-mapreduce-project/CHANGES.txt
@@ -9,6 +9,9 @@ Trunk (Unreleased)
MAPREDUCE-5653. DistCp does not honour config-overrides for
mapreduce.[map,reduce].memory.mb (Ratandeep Ratti via aw)
+ MAPREDUCE-4424. 'mapred job -list' command should show the job name
+ as well. (Avinash Kujur via aajisaka)
+
NEW FEATURES
MAPREDUCE-778. Rumen Anonymizer. (Amar Kamat and Chris Douglas via amarrk)
http://git-wip-us.apache.org/repos/asf/hadoop/blob/8041267f/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/tools/CLI.java
----------------------------------------------------------------------
diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/tools/CLI.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/tools/CLI.java
index 3630c64..c3f1564 100644
--- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/tools/CLI.java
+++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/tools/CLI.java
@@ -616,17 +616,19 @@ public class CLI extends Configured implements Tool {
}
@Private
- public static String headerPattern = "%23s\t%10s\t%14s\t%12s\t%12s\t%10s\t%15s\t%15s\t%8s\t%8s\t%10s\t%10s\n";
+ public static String headerPattern = "%23s\t%20s\t%10s\t%14s\t%12s\t%12s" +
+ "\t%10s\t%15s\t%15s\t%8s\t%8s\t%10s\t%10s\n";
@Private
- public static String dataPattern = "%23s\t%10s\t%14d\t%12s\t%12s\t%10s\t%15s\t%15s\t%8s\t%8s\t%10s\t%10s\n";
+ public static String dataPattern = "%23s\t%20s\t%10s\t%14d\t%12s\t%12s" +
+ "\t%10s\t%15s\t%15s\t%8s\t%8s\t%10s\t%10s\n";
private static String memPattern = "%dM";
private static String UNAVAILABLE = "N/A";
@Private
public void displayJobList(JobStatus[] jobs, PrintWriter writer) {
writer.println("Total jobs:" + jobs.length);
- writer.printf(headerPattern, "JobId", "State", "StartTime", "UserName",
- "Queue", "Priority", "UsedContainers",
+ writer.printf(headerPattern, "JobId", "JobName", "State", "StartTime",
+ "UserName", "Queue", "Priority", "UsedContainers",
"RsvdContainers", "UsedMem", "RsvdMem", "NeededMem", "AM info");
for (JobStatus job : jobs) {
int numUsedSlots = job.getNumUsedSlots();
@@ -634,10 +636,11 @@ public class CLI extends Configured implements Tool {
int usedMem = job.getUsedMem();
int rsvdMem = job.getReservedMem();
int neededMem = job.getNeededMem();
- writer.printf(dataPattern,
- job.getJobID().toString(), job.getState(), job.getStartTime(),
- job.getUsername(), job.getQueue(),
- job.getPriority().name(),
+ int jobNameLength = job.getJobName().length();
+ writer.printf(dataPattern, job.getJobID().toString(),
+ job.getJobName().substring(0, jobNameLength > 20 ? 20 : jobNameLength),
+ job.getState(), job.getStartTime(), job.getUsername(),
+ job.getQueue(), job.getPriority().name(),
numUsedSlots < 0 ? UNAVAILABLE : numUsedSlots,
numReservedSlots < 0 ? UNAVAILABLE : numReservedSlots,
usedMem < 0 ? UNAVAILABLE : String.format(memPattern, usedMem),
http://git-wip-us.apache.org/repos/asf/hadoop/blob/8041267f/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/TestMRJobClient.java
----------------------------------------------------------------------
diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/TestMRJobClient.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/TestMRJobClient.java
index fd36285..191195b 100644
--- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/TestMRJobClient.java
+++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/TestMRJobClient.java
@@ -531,6 +531,49 @@ public class TestMRJobClient extends ClusterMapReduceTestCase {
verifyJobPriority(jobId, "NORMAL", conf, createJobClient());
}
+ /**
+ * Test -list option displays job name.
+ * The name is capped to 20 characters for display.
+ */
+ public void testJobName() throws Exception {
+ Configuration conf = createJobConf();
+ CLI jc = createJobClient();
+ Job job = MapReduceTestUtil.createJob(conf, getInputDir(), getOutputDir(),
+ 1, 1, "short_name");
+ job.setJobName("mapreduce");
+ job.setPriority(JobPriority.NORMAL);
+ job.waitForCompletion(true);
+ String jobId = job.getJobID().toString();
+ verifyJobName(jobId, "mapreduce", conf, jc);
+ Job job2 = MapReduceTestUtil.createJob(conf, getInputDir(), getOutputDir(),
+ 1, 1, "long_name");
+ job2.setJobName("mapreduce_job_with_long_name");
+ job2.setPriority(JobPriority.NORMAL);
+ job2.waitForCompletion(true);
+ jobId = job2.getJobID().toString();
+ verifyJobName(jobId, "mapreduce_job_with_l", conf, jc);
+ }
+
+ protected void verifyJobName(String jobId, String name,
+ Configuration conf, CLI jc) throws Exception {
+ PipedInputStream pis = new PipedInputStream();
+ PipedOutputStream pos = new PipedOutputStream(pis);
+ int exitCode = runTool(conf, jc,
+ new String[] { "-list", "all" }, pos);
+ assertEquals("Exit code", 0, exitCode);
+ BufferedReader br = new BufferedReader(new InputStreamReader(pis));
+ String line = null;
+ while ((line = br.readLine()) != null) {
+ LOG.info("line = " + line);
+ if (!line.contains(jobId)) {
+ continue;
+ }
+ assertTrue(line.contains(name));
+ break;
+ }
+ pis.close();
+ }
+
protected CLI createJobClient() throws IOException {
return new CLI();
}