Author: acmurthy
Date: Sat Apr  6 05:34:58 2013
New Revision: 1465191

URL: http://svn.apache.org/r1465191
Log:
MAPREDUCE-5129. Allow tags to JobHistory for deeper analytics. Contributed by 
Billie Rinaldi.

Modified:
    hadoop/common/branches/branch-1/CHANGES.txt
    
hadoop/common/branches/branch-1/src/mapred/org/apache/hadoop/mapred/JobConf.java
    
hadoop/common/branches/branch-1/src/mapred/org/apache/hadoop/mapred/JobHistory.java
    
hadoop/common/branches/branch-1/src/test/org/apache/hadoop/mapred/TestJobHistory.java
    
hadoop/common/branches/branch-1/src/tools/org/apache/hadoop/tools/rumen/Job20LineHistoryEventEmitter.java
    
hadoop/common/branches/branch-1/src/tools/org/apache/hadoop/tools/rumen/JobSubmittedEvent.java

Modified: hadoop/common/branches/branch-1/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/hadoop/common/branches/branch-1/CHANGES.txt?rev=1465191&r1=1465190&r2=1465191&view=diff
==============================================================================
--- hadoop/common/branches/branch-1/CHANGES.txt (original)
+++ hadoop/common/branches/branch-1/CHANGES.txt Sat Apr  6 05:34:58 2013
@@ -233,6 +233,9 @@ Release 1.2.0 - unreleased
     HADOOP-9071. Configure ivy log levels for resolve/retrieve.
     (Giridharan Kesavan via suresh)
 
+    MAPREDUCE-5129. Allow tags to JobHistory for deeper analytics. (billie via
+    acmurthy)
+
   BUG FIXES
 
     HADOOP-9451. Fault single-layer config if node group topology is enabled.

Modified: 
hadoop/common/branches/branch-1/src/mapred/org/apache/hadoop/mapred/JobConf.java
URL: 
http://svn.apache.org/viewvc/hadoop/common/branches/branch-1/src/mapred/org/apache/hadoop/mapred/JobConf.java?rev=1465191&r1=1465190&r2=1465191&view=diff
==============================================================================
--- 
hadoop/common/branches/branch-1/src/mapred/org/apache/hadoop/mapred/JobConf.java
 (original)
+++ 
hadoop/common/branches/branch-1/src/mapred/org/apache/hadoop/mapred/JobConf.java
 Sat Apr  6 05:34:58 2013
@@ -327,6 +327,8 @@ public class JobConf extends Configurati
   public static final String WORKFLOW_ADJACENCY_PREFIX_PATTERN =
       "^mapreduce\\.workflow\\.adjacency\\..+";
 
+  public static final String WORKFLOW_TAGS = "mapreduce.workflow.tags";
+
   public static final String MAPREDUCE_RECOVER_JOB = 
       "mapreduce.job.restart.recover";
 

Modified: 
hadoop/common/branches/branch-1/src/mapred/org/apache/hadoop/mapred/JobHistory.java
URL: 
http://svn.apache.org/viewvc/hadoop/common/branches/branch-1/src/mapred/org/apache/hadoop/mapred/JobHistory.java?rev=1465191&r1=1465190&r2=1465191&view=diff
==============================================================================
--- 
hadoop/common/branches/branch-1/src/mapred/org/apache/hadoop/mapred/JobHistory.java
 (original)
+++ 
hadoop/common/branches/branch-1/src/mapred/org/apache/hadoop/mapred/JobHistory.java
 Sat Apr  6 05:34:58 2013
@@ -476,7 +476,8 @@ public class JobHistory {
     SHUFFLE_FINISHED, SORT_FINISHED, COUNTERS, SPLITS, JOB_PRIORITY, 
HTTP_PORT, 
     TRACKER_NAME, STATE_STRING, VERSION, MAP_COUNTERS, REDUCE_COUNTERS,
     VIEW_JOB, MODIFY_JOB, JOB_QUEUE, FAIL_REASON, LOCALITY, AVATAAR,
-    WORKFLOW_ID, WORKFLOW_NAME, WORKFLOW_NODE_NAME, WORKFLOW_ADJACENCIES
+    WORKFLOW_ID, WORKFLOW_NAME, WORKFLOW_NODE_NAME, WORKFLOW_ADJACENCIES,
+    WORKFLOW_TAGS
   }
 
   /**
@@ -1781,15 +1782,17 @@ public class JobHistory {
                                   Keys.VIEW_JOB, Keys.MODIFY_JOB,
                                   Keys.JOB_QUEUE, Keys.WORKFLOW_ID,
                                   Keys.WORKFLOW_NAME, Keys.WORKFLOW_NODE_NAME,
-                                  Keys.WORKFLOW_ADJACENCIES}, 
+                                  Keys.WORKFLOW_ADJACENCIES,
+                                  Keys.WORKFLOW_TAGS}, 
                        new String[]{jobId.toString(), jobName, user, 
                                     String.valueOf(submitTime) , jobConfPath,
                                     viewJobACL, modifyJobACL,
                                     jobConf.getQueueName(),
-                                    jobConf.get(jobConf.WORKFLOW_ID, ""),
-                                    jobConf.get(jobConf.WORKFLOW_NAME, ""),
-                                    jobConf.get(jobConf.WORKFLOW_NODE_NAME, 
""),
-                                    getWorkflowAdjacencies(jobConf)
+                                    jobConf.get(JobConf.WORKFLOW_ID, ""),
+                                    jobConf.get(JobConf.WORKFLOW_NAME, ""),
+                                    jobConf.get(JobConf.WORKFLOW_NODE_NAME, 
""),
+                                    getWorkflowAdjacencies(jobConf),
+                                    jobConf.get(JobConf.WORKFLOW_TAGS, ""),
                                     }, 
                                     jobId
                       ); 

Modified: 
hadoop/common/branches/branch-1/src/test/org/apache/hadoop/mapred/TestJobHistory.java
URL: 
http://svn.apache.org/viewvc/hadoop/common/branches/branch-1/src/test/org/apache/hadoop/mapred/TestJobHistory.java?rev=1465191&r1=1465190&r2=1465191&view=diff
==============================================================================
--- 
hadoop/common/branches/branch-1/src/test/org/apache/hadoop/mapred/TestJobHistory.java
 (original)
+++ 
hadoop/common/branches/branch-1/src/test/org/apache/hadoop/mapred/TestJobHistory.java
 Sat Apr  6 05:34:58 2013
@@ -841,6 +841,18 @@ public class TestJobHistory extends Test
     
     // Validate the job queue name
     assertTrue(jobInfo.getJobQueue().equals(conf.getQueueName()));
+
+    // Validate the workflow properties
+    assertTrue(jobInfo.get(Keys.WORKFLOW_ID).equals(
+        conf.get(JobConf.WORKFLOW_ID, "")));
+    assertTrue(jobInfo.get(Keys.WORKFLOW_NAME).equals(
+        conf.get(JobConf.WORKFLOW_NAME, "")));
+    assertTrue(jobInfo.get(Keys.WORKFLOW_NODE_NAME).equals(
+        conf.get(JobConf.WORKFLOW_NODE_NAME, "")));
+    assertTrue(jobInfo.get(Keys.WORKFLOW_ADJACENCIES).equals(
+        JobHistory.JobInfo.getWorkflowAdjacencies(conf)));
+    assertTrue(jobInfo.get(Keys.WORKFLOW_TAGS).equals(
+        conf.get(JobConf.WORKFLOW_TAGS, "")));
   }
 
   public void testDoneFolderOnHDFS() throws IOException {
@@ -998,7 +1010,21 @@ public class TestJobHistory extends Test
       // no queue admins for default queue
       conf.set(QueueManager.toFullPropertyName(
           "default", QueueACL.ADMINISTER_JOBS.getAclName()), " ");
-      
+
+      // set workflow properties
+      conf.set(JobConf.WORKFLOW_ID, "workflowId1");
+      conf.set(JobConf.WORKFLOW_NAME, "workflowName1");
+      String workflowNodeName = "A";
+      conf.set(JobConf.WORKFLOW_NODE_NAME, workflowNodeName);
+      conf.set(JobConf.WORKFLOW_ADJACENCY_PREFIX_STRING + workflowNodeName,
+          "BC");
+      conf.set(JobConf.WORKFLOW_ADJACENCY_PREFIX_STRING + workflowNodeName,
+          "DEF");
+      conf.set(JobConf.WORKFLOW_ADJACENCY_PREFIX_STRING + "DEF", "G");
+      conf.set(JobConf.WORKFLOW_ADJACENCY_PREFIX_STRING + "Z",
+          workflowNodeName);
+      conf.set(JobConf.WORKFLOW_TAGS, "tag1,tag2");
+
       mr = new MiniMRCluster(2, "file:///", 3, null, null, conf);
 
       // run the TCs

Modified: 
hadoop/common/branches/branch-1/src/tools/org/apache/hadoop/tools/rumen/Job20LineHistoryEventEmitter.java
URL: 
http://svn.apache.org/viewvc/hadoop/common/branches/branch-1/src/tools/org/apache/hadoop/tools/rumen/Job20LineHistoryEventEmitter.java?rev=1465191&r1=1465190&r2=1465191&view=diff
==============================================================================
--- 
hadoop/common/branches/branch-1/src/tools/org/apache/hadoop/tools/rumen/Job20LineHistoryEventEmitter.java
 (original)
+++ 
hadoop/common/branches/branch-1/src/tools/org/apache/hadoop/tools/rumen/Job20LineHistoryEventEmitter.java
 Sat Apr  6 05:34:58 2013
@@ -82,6 +82,10 @@ public class Job20LineHistoryEventEmitte
       if (workflowAdjacencies == null) {
         workflowAdjacencies = "";
       }
+      String workflowTags = line.get("WORKFLOW_TAGS");
+      if (workflowTags == null) {
+        workflowTags = "";
+      }
 
       if (submitTime != null) {
         Job20LineHistoryEventEmitter that =
@@ -94,7 +98,7 @@ public class Job20LineHistoryEventEmitte
         return new JobSubmittedEvent(jobID, jobName,
             user == null ? "nulluser" : user, that.originalSubmitTime,
             jobConf, jobACLs, queueName, workflowId, workflowName,
-            workflowNodeName, workflowAdjacencies);
+            workflowNodeName, workflowAdjacencies, workflowTags);
       }
 
       return null;

Modified: 
hadoop/common/branches/branch-1/src/tools/org/apache/hadoop/tools/rumen/JobSubmittedEvent.java
URL: 
http://svn.apache.org/viewvc/hadoop/common/branches/branch-1/src/tools/org/apache/hadoop/tools/rumen/JobSubmittedEvent.java?rev=1465191&r1=1465190&r2=1465191&view=diff
==============================================================================
--- 
hadoop/common/branches/branch-1/src/tools/org/apache/hadoop/tools/rumen/JobSubmittedEvent.java
 (original)
+++ 
hadoop/common/branches/branch-1/src/tools/org/apache/hadoop/tools/rumen/JobSubmittedEvent.java
 Sat Apr  6 05:34:58 2013
@@ -42,11 +42,12 @@ public class JobSubmittedEvent implement
   private String workflowName;
   private String workflowNodeName;
   private String workflowAdjacencies;
+  private String workflowTags;
 
   /**
    * @deprecated Use
    *             {@link #JobSubmittedEvent(JobID, String, String, long, String,
-   *             Map, String)}
+   *             Map, String, String, String, String, String, String)}
    *             instead.
    */
   @Deprecated
@@ -59,7 +60,7 @@ public class JobSubmittedEvent implement
   /**
    * @deprecated Use
    *             {@link #JobSubmittedEvent(JobID, String, String, long, String,
-   *             Map, String)}
+   *             Map, String, String, String, String, String, String)}
    *             instead.
    */
   @Deprecated
@@ -71,6 +72,22 @@ public class JobSubmittedEvent implement
   }
 
   /**
+   * @deprecated Use
+   *             {@link #JobSubmittedEvent(JobID, String, String, long, String,
+   *             Map, String, String, String, String, String, String)}
+   *             instead.
+   */
+  @Deprecated
+  public JobSubmittedEvent(JobID id, String jobName, String userName,
+      long submitTime, String jobConfPath,
+      Map<JobACL, AccessControlList> jobACLs, String queue,
+      String workflowId, String workflowName, String workflowNodeName,
+      String workflowAdjacencies) {
+    this(id, jobName, userName, submitTime, jobConfPath, jobACLs, queue,
+        workflowId, workflowName, workflowNodeName, workflowAdjacencies, "");
+  }
+
+  /**
    * Create an event to record job submission
    * @param id The job Id of the job
    * @param jobName Name of the job
@@ -83,12 +100,13 @@ public class JobSubmittedEvent implement
    * @param workflowName the workflow name
    * @param workflowNodeName the workflow node name
    * @param workflowAdjacencies the workflow adjacencies
+   * @param workflowTags Comma-separated workflow tags
    */
   public JobSubmittedEvent(JobID id, String jobName, String userName,
       long submitTime, String jobConfPath,
       Map<JobACL, AccessControlList> jobACLs, String queue,
       String workflowId, String workflowName, String workflowNodeName,
-      String workflowAdjacencies) {
+      String workflowAdjacencies, String workflowTags) {
     this.jobId = id;
     this.jobName = jobName;
     this.userName = userName;
@@ -100,6 +118,7 @@ public class JobSubmittedEvent implement
     this.workflowName = workflowName;
     this.workflowNodeName = workflowNodeName;
     this.workflowAdjacencies = workflowAdjacencies;
+    this.workflowTags = workflowTags;
   }
 
   /** Get the Job Id */
@@ -136,6 +155,10 @@ public class JobSubmittedEvent implement
   public String getWorkflowAdjacencies() {
     return workflowAdjacencies;
   }
+  /** Get the workflow tags */
+  public String getWorkflowTags() {
+    return workflowTags;
+  }
 
   /** Get the event type */
   public EventType getEventType() { return EventType.JOB_SUBMITTED; }


Reply via email to