You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sqoop.apache.org by ja...@apache.org on 2012/08/21 08:56:20 UTC

svn commit: r1375399 - in /sqoop/trunk/src/java/org/apache/sqoop/mapreduce: ExportJobBase.java ImportJobBase.java

Author: jarcec
Date: Tue Aug 21 06:56:19 2012
New Revision: 1375399

URL: http://svn.apache.org/viewvc?rev=1375399&view=rev
Log:
SQOOP-580. Add Open-ended "teardown" routine that is called after the job execution for cleanup.

(Seetharam Venkatesh via Jarek Jarcec Cecho)

Modified:
    sqoop/trunk/src/java/org/apache/sqoop/mapreduce/ExportJobBase.java
    sqoop/trunk/src/java/org/apache/sqoop/mapreduce/ImportJobBase.java

Modified: sqoop/trunk/src/java/org/apache/sqoop/mapreduce/ExportJobBase.java
URL: http://svn.apache.org/viewvc/sqoop/trunk/src/java/org/apache/sqoop/mapreduce/ExportJobBase.java?rev=1375399&r1=1375398&r2=1375399&view=diff
==============================================================================
--- sqoop/trunk/src/java/org/apache/sqoop/mapreduce/ExportJobBase.java (original)
+++ sqoop/trunk/src/java/org/apache/sqoop/mapreduce/ExportJobBase.java Tue Aug 21 06:56:19 2012
@@ -353,9 +353,8 @@ public class ExportJobBase extends JobBa
       }
     }
 
+    Job job = new Job(conf);
     try {
-      Job job = new Job(conf);
-
       // Set the external jar to use for the job.
       job.getConfiguration().set("mapred.jar", ormJarFile);
 
@@ -365,6 +364,8 @@ public class ExportJobBase extends JobBa
       configureMapper(job, tableName, tableClassName);
       configureNumTasks(job);
       cacheJars(job, context.getConnManager());
+
+      jobSetup(job);
       setJob(job);
       boolean success = runJob(job);
       if (!success) {
@@ -376,6 +377,7 @@ public class ExportJobBase extends JobBa
       throw new IOException(cnfe);
     } finally {
       unloadJars();
+      jobTeardown(job);
     }
 
     // Unstage the data if needed
@@ -416,4 +418,19 @@ public class ExportJobBase extends JobBa
       return FileType.UNKNOWN;
     }
   }
+
+  /**
+   * Open-ended "setup" routine that is called after the job is configured
+   * but just before it is submitted to MapReduce. Subclasses may override
+   * if necessary.
+   */
+  protected void jobSetup(Job job) throws IOException, ExportException {
+  }
+
+  /**
+   * Open-ended "teardown" routine that is called after the job is executed.
+   * Subclasses may override if necessary.
+   */
+  protected void jobTeardown(Job job) throws IOException, ExportException {
+  }
 }

Modified: sqoop/trunk/src/java/org/apache/sqoop/mapreduce/ImportJobBase.java
URL: http://svn.apache.org/viewvc/sqoop/trunk/src/java/org/apache/sqoop/mapreduce/ImportJobBase.java?rev=1375399&r1=1375398&r2=1375399&view=diff
==============================================================================
--- sqoop/trunk/src/java/org/apache/sqoop/mapreduce/ImportJobBase.java (original)
+++ sqoop/trunk/src/java/org/apache/sqoop/mapreduce/ImportJobBase.java Tue Aug 21 06:56:19 2012
@@ -191,9 +191,8 @@ public class ImportJobBase extends JobBa
         new TableClassName(options).getClassForTable(tableName);
     loadJars(conf, ormJarFile, tableClassName);
 
+    Job job = new Job(conf);
     try {
-      Job job = new Job(conf);
-
       // Set the external jar to use for the job.
       job.getConfiguration().set("mapred.jar", ormJarFile);
 
@@ -216,6 +215,7 @@ public class ImportJobBase extends JobBa
       throw new IOException(cnfe);
     } finally {
       unloadJars();
+      jobTeardown(job);
     }
   }
 
@@ -227,6 +227,13 @@ public class ImportJobBase extends JobBa
   protected void jobSetup(Job job) throws IOException, ImportException {
   }
 
+  /**
+   * Open-ended "teardown" routine that is called after the job is executed.
+   * Subclasses may override if necessary.
+   */
+  protected void jobTeardown(Job job) throws IOException, ImportException {
+  }
+
   protected ImportJobContext getContext() {
     return context;
   }