Class JobControl
java.lang.Object
org.apache.hadoop.mapreduce.lib.jobcontrol.JobControl
- All Implemented Interfaces:
Runnable
- Direct Known Subclasses:
JobControl
This class encapsulates a set of MapReduce jobs and its dependency.
It tracks the states of the jobs by placing them into different tables
according to their states.
This class provides APIs for the client app to add a job to the group
and to get the jobs in the group in different states. When a job is
added, an ID unique to the group is assigned to the job.
This class has a thread that submits jobs when they become ready,
monitors the states of the running jobs, and updates the states of jobs
based on the state changes of their depending jobs states. The class
provides APIs for suspending/resuming the thread, and
for stopping the thread.
-
Nested Class Summary
Nested Classes -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionAdd a new job.addJob(ControlledJob aJob) Add a new controlled job.voidAdd a collection of jobsbooleanvoidresume()resume the suspended threadvoidrun()The main loop for the thread.voidstop()set the thread state to STOPPING so that the thread will stop when it wakes up.voidsuspend()suspend the running thread
-
Constructor Details
-
JobControl
Construct a job control for a group of jobs.- Parameters:
groupName- a name identifying this group
-
-
Method Details
-
getWaitingJobList
- Returns:
- the jobs in the waiting state
-
getRunningJobList
- Returns:
- the jobs in the running state
-
getReadyJobsList
- Returns:
- the jobs in the ready state
-
getSuccessfulJobList
- Returns:
- the jobs in the success state
-
getFailedJobList
-
addJob
Add a new controlled job.- Parameters:
aJob- the new controlled job
-
addJob
Add a new job.- Parameters:
aJob- the new job
-
addJobCollection
Add a collection of jobs- Parameters:
jobs-
-
getThreadState
- Returns:
- the thread state
-
stop
public void stop()set the thread state to STOPPING so that the thread will stop when it wakes up. -
suspend
public void suspend()suspend the running thread -
resume
public void resume()resume the suspended thread -
allFinished
public boolean allFinished() -
run
public void run()The main loop for the thread. The loop does the following: Check the states of the running jobs Update the states of waiting jobs Submit the jobs in ready state
-