org.springframework.data.hadoop.mapreduce
Class JobRunner

java.lang.Object
  extended by org.springframework.data.hadoop.mapreduce.JobRunner
All Implemented Interfaces:
Callable<Void>, BeanFactoryAware, InitializingBean

public class JobRunner
extends Object
implements Callable<Void>

Simple runner for submitting Hadoop jobs sequentially. By default, the runner waits for the jobs to finish and returns a boolean indicating whether all the jobs succeeded or not (when there's no waiting, the status cannot be determined and null is returned).

For more control over the job execution and outcome consider querying the Jobs or using Spring Batch (see the reference documentation for more info).

To make the runner execute at startup, use setRunAtStartup(boolean).

Author:
Costin Leau

Constructor Summary
JobRunner()
           
 
Method Summary
 void afterPropertiesSet()
           
 Void call()
           
protected  void executeJobs()
           
 void setBeanFactory(BeanFactory beanFactory)
           
 void setJob(Job job)
          Sets the job to execute.
 void setJobNames(String... jobName)
          Sets the jobs to execute by (bean) name.
 void setJobs(Collection<Job> jobs)
          Sets the jobs to execute.
 void setPostAction(Collection<Callable<?>> actions)
          Actions to be invoked after running the action.
 void setPreAction(Collection<Callable<?>> actions)
          Actions to be invoked before running the action.
 void setRunAtStartup(boolean runAtStartup)
          Indicates whether the jobs should be submitted at startup (default) or not.
 void setVerbose(boolean verbose)
          Indicates whether the job execution is verbose (the default) or not.
 void setWaitForJob(boolean waitForJob)
          Indicates whether the tasklet should return for the job to complete (default) after submission or not.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JobRunner

public JobRunner()
Method Detail

afterPropertiesSet

public void afterPropertiesSet()
                        throws Exception
Specified by:
afterPropertiesSet in interface InitializingBean
Throws:
Exception

call

public Void call()
          throws Exception
Specified by:
call in interface Callable<Void>
Throws:
Exception

setRunAtStartup

public void setRunAtStartup(boolean runAtStartup)
Indicates whether the jobs should be submitted at startup (default) or not.

Parameters:
runAtStartup - The runAtStartup to set.

setPreAction

public void setPreAction(Collection<Callable<?>> actions)
Actions to be invoked before running the action.

Parameters:
actions -

setPostAction

public void setPostAction(Collection<Callable<?>> actions)
Actions to be invoked after running the action.

Parameters:
actions -

executeJobs

protected void executeJobs()
                    throws Exception
Throws:
Exception

setJob

public void setJob(Job job)
Sets the job to execute.

Parameters:
job - The job to execute.

setJobs

public void setJobs(Collection<Job> jobs)
Sets the jobs to execute.

Parameters:
jobs - The job to execute.

setJobNames

public void setJobNames(String... jobName)
Sets the jobs to execute by (bean) name. This is the default method used by the hdp name space to allow lazy initialization and potential scoping to kick in.

Parameters:
jobName - The job to execute.

setWaitForJob

public void setWaitForJob(boolean waitForJob)
Indicates whether the tasklet should return for the job to complete (default) after submission or not.

Parameters:
waitForJob - whether to wait for the job to complete or not.

setVerbose

public void setVerbose(boolean verbose)
Indicates whether the job execution is verbose (the default) or not.

Parameters:
verbose - whether the job execution is verbose or not.

setBeanFactory

public void setBeanFactory(BeanFactory beanFactory)
                    throws BeansException
Specified by:
setBeanFactory in interface BeanFactoryAware
Throws:
BeansException