Переглянути джерело

HADOOP-961. Add a 'job -events' sub-command that prints job events. Contributed by Owen.

git-svn-id: https://svn.apache.org/repos/asf/lucene/hadoop/trunk@501941 13f79535-47bb-0310-9956-ffa450edef68
Doug Cutting 18 роки тому
батько
коміт
2a562b9038
2 змінених файлів з 23 додано та 1 видалено
  1. 3 0
      CHANGES.txt
  2. 20 1
      src/java/org/apache/hadoop/mapred/JobClient.java

+ 3 - 0
CHANGES.txt

@@ -102,6 +102,9 @@ Trunk (unreleased changes)
     likely already in flight, skip ahead rather than re-opening the
     block.  (Dhruba Borthakur via cutting)
 
+32. HADOOP-961.  Add a 'job -events' sub-command that prints job
+    events, including task completions and failures.  (omalley via cutting)
+
 
 Release 0.10.1 - 2007-01-10
 

+ 20 - 1
src/java/org/apache/hadoop/mapred/JobClient.java

@@ -515,7 +515,9 @@ public class JobClient extends ToolBase implements MRConstants  {
     
     public int run(String[] argv) throws Exception {
         if (argv.length < 2) {
-            System.out.println("JobClient -submit <job> | -status <id> | -kill <id> [-jt <jobtracker:port>|<config>]");
+            System.out.println("JobClient -submit <job> | -status <id> |" + 
+                               " -events <id> |" +
+                               " -kill <id> [-jt <jobtracker:port>|<config>]");
             System.exit(-1);
         }
 
@@ -540,6 +542,8 @@ public class JobClient extends ToolBase implements MRConstants  {
                 jobid = argv[i+1];
                 killJob = true;
                 i++;
+            } else if ("-events".equals(argv[i])) {
+              listEvents(argv[++i]);
             }
         }
 
@@ -574,6 +578,21 @@ public class JobClient extends ToolBase implements MRConstants  {
         return exitCode;
     }
     
+    /**
+     * List the events for the given job
+     * @param jobId the job id for the job's events to list
+     * @throws IOException
+     */
+    private void listEvents(String jobId) throws IOException {
+      TaskCompletionEvent[] events = 
+        jobSubmitClient.getTaskCompletionEvents(jobId, 0);
+      System.out.println("Task completion events for " + jobId);
+      for(TaskCompletionEvent event: events) {
+        System.out.println(event.getTaskStatus() + " " + event.getTaskId() + 
+                           " " + event.getTaskTrackerHttp());
+      }
+    }
+    
     /**
      */
     public static void main(String argv[]) throws Exception {