Spring for Apache Hadoop

org.springframework.data.hadoop.batch.mapreduce
Class ToolTasklet

java.lang.Object
  extended by org.springframework.data.hadoop.mapreduce.ToolExecutor
      extended by org.springframework.data.hadoop.batch.mapreduce.ToolTasklet
All Implemented Interfaces:
org.springframework.batch.core.step.tasklet.Tasklet, org.springframework.beans.factory.Aware, org.springframework.beans.factory.BeanClassLoaderAware, org.springframework.beans.factory.InitializingBean

public class ToolTasklet
extends ToolExecutor
implements org.springframework.batch.core.step.tasklet.Tasklet, org.springframework.beans.factory.InitializingBean

Tasklet for executing Hadoop Tools.

Author:
Costin Leau

Constructor Summary
ToolTasklet()
           
 
Method Summary
 void afterPropertiesSet()
           
protected  java.lang.ClassLoader createClassLoaderForJar(org.springframework.core.io.Resource jar, java.lang.ClassLoader parentCL, org.apache.hadoop.conf.Configuration cfg)
           
 org.springframework.batch.repeat.RepeatStatus execute(org.springframework.batch.core.StepContribution contribution, org.springframework.batch.core.scope.context.ChunkContext chunkContext)
           
protected  void postExecution(org.apache.hadoop.conf.Configuration cfg)
           
protected  void preExecution(org.apache.hadoop.conf.Configuration cfg)
           
protected  org.apache.hadoop.conf.Configuration resolveConfiguration()
           
protected  java.lang.Class<T> resolveTargetClass(org.apache.hadoop.conf.Configuration cfg)
           
protected  T resolveTargetObject(java.lang.Class<T> type)
           
protected  int runCode()
           
 void setArchives(org.springframework.core.io.Resource... archives)
          Sets the archives to be unarchive to the map reduce cluster.
 void setArguments(java.lang.String... arguments)
          Sets the arguments.
 void setBeanClassLoader(java.lang.ClassLoader classLoader)
           
 void setCloseFs(boolean closeFs)
          Indicates whether or not to close the Hadoop file-systems resulting from the custom code execution.
 void setConfiguration(org.apache.hadoop.conf.Configuration configuration)
          Sets the configuration.
 void setFiles(org.springframework.core.io.Resource... files)
          Sets the files to be copied to the map reduce cluster.
 void setJar(org.springframework.core.io.Resource jar)
          Sets the target code jar.
 void setLibs(org.springframework.core.io.Resource... libJars)
          Sets the jar files to include in the classpath.
 void setProperties(java.util.Properties properties)
          Sets the properties.
 void setSystemProcessExitCodeMapper(org.springframework.batch.core.step.tasklet.SystemProcessExitCodeMapper systemProcessExitCodeMapper)
           
 void setUser(java.lang.String user)
          Sets the user impersonation (optional) for running this job.
 
Methods inherited from class org.springframework.data.hadoop.mapreduce.ToolExecutor
invokeTargetObject, loadClass, setTool, setToolClass
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ToolTasklet

public ToolTasklet()
Method Detail

execute

public org.springframework.batch.repeat.RepeatStatus execute(org.springframework.batch.core.StepContribution contribution,
                                                             org.springframework.batch.core.scope.context.ChunkContext chunkContext)
                                                      throws java.lang.Exception
Specified by:
execute in interface org.springframework.batch.core.step.tasklet.Tasklet
Throws:
java.lang.Exception

afterPropertiesSet

public void afterPropertiesSet()
                        throws java.lang.Exception
Specified by:
afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
Throws:
java.lang.Exception

setSystemProcessExitCodeMapper

public void setSystemProcessExitCodeMapper(org.springframework.batch.core.step.tasklet.SystemProcessExitCodeMapper systemProcessExitCodeMapper)
Parameters:
systemProcessExitCodeMapper - maps system process return value to ExitStatus returned by Tasklet. SimpleSystemProcessExitCodeMapper is used by default.

runCode

protected int runCode()
               throws java.lang.Exception
Throws:
java.lang.Exception

resolveConfiguration

protected org.apache.hadoop.conf.Configuration resolveConfiguration()
                                                             throws java.lang.Exception
Throws:
java.lang.Exception

resolveTargetClass

protected java.lang.Class<T> resolveTargetClass(org.apache.hadoop.conf.Configuration cfg)
                                         throws java.lang.Exception
Throws:
java.lang.Exception

resolveTargetObject

protected T resolveTargetObject(java.lang.Class<T> type)

createClassLoaderForJar

protected java.lang.ClassLoader createClassLoaderForJar(org.springframework.core.io.Resource jar,
                                                        java.lang.ClassLoader parentCL,
                                                        org.apache.hadoop.conf.Configuration cfg)

preExecution

protected void preExecution(org.apache.hadoop.conf.Configuration cfg)

postExecution

protected void postExecution(org.apache.hadoop.conf.Configuration cfg)

setJar

public void setJar(org.springframework.core.io.Resource jar)
Sets the target code jar.

Parameters:
jar -

setArguments

public void setArguments(java.lang.String... arguments)
Sets the arguments.

Parameters:
arguments - The arguments to set.

setConfiguration

public void setConfiguration(org.apache.hadoop.conf.Configuration configuration)
Sets the configuration.

Parameters:
configuration - The configuration to set.

setProperties

public void setProperties(java.util.Properties properties)
Sets the properties.

Parameters:
properties - The properties to set.

setBeanClassLoader

public void setBeanClassLoader(java.lang.ClassLoader classLoader)
Specified by:
setBeanClassLoader in interface org.springframework.beans.factory.BeanClassLoaderAware

setCloseFs

public void setCloseFs(boolean closeFs)
Indicates whether or not to close the Hadoop file-systems resulting from the custom code execution. Default is true. Turn this to false if the code reuses the same file-system used by the rest of the application.

Parameters:
closeFs - the new close fs

setLibs

public void setLibs(org.springframework.core.io.Resource... libJars)
Sets the jar files to include in the classpath. Note that a pattern can be used (e.g. mydir/*.jar), which the Spring container will automatically resolve.

Parameters:
libJars - The jar files to include in the classpath.

setFiles

public void setFiles(org.springframework.core.io.Resource... files)
Sets the files to be copied to the map reduce cluster. Note that a pattern can be used (e.g. mydir/*.txt), which the Spring container will automatically resolve.

Parameters:
files - The files to copy.

setArchives

public void setArchives(org.springframework.core.io.Resource... archives)
Sets the archives to be unarchive to the map reduce cluster. Note that a pattern can be used (e.g. mydir/*.zip), which the Spring container will automatically resolve.

Parameters:
archives - The archives to unarchive on the compute machines.

setUser

public void setUser(java.lang.String user)
Sets the user impersonation (optional) for running this job. Should be used when running against a Hadoop Kerberos cluster.

Parameters:
user - user/group information

Spring for Apache Hadoop