org.apache.hama.bsp
Class LocalBSPRunner

java.lang.Object
  extended by org.apache.hama.bsp.LocalBSPRunner
All Implemented Interfaces:
org.apache.hadoop.ipc.VersionedProtocol, HamaRPCProtocolVersion, JobSubmissionProtocol

public class LocalBSPRunner
extends java.lang.Object
implements JobSubmissionProtocol

A multithreaded local BSP runner that can be used for debugging BSP's. It uses the working directory "/user/hama/bsp/" and starts runners based on the number of the machines core.


Field Summary
protected static java.util.concurrent.CyclicBarrier barrier
           
protected  org.apache.hadoop.conf.Configuration conf
           
protected  JobStatus currentJobStatus
           
protected  org.apache.hadoop.fs.FileSystem fs
           
protected static java.util.LinkedList<java.util.concurrent.Future<BSP>> futureList
           
protected  java.lang.String jobFile
           
protected  java.lang.String jobName
           
protected  java.util.HashMap<java.lang.String,BSPPeerProtocol> localGrooms
           
static org.apache.commons.logging.Log LOG
           
protected static java.util.concurrent.ThreadPoolExecutor threadPool
           
protected static int threadPoolSize
           
 
Fields inherited from interface org.apache.hama.ipc.HamaRPCProtocolVersion
versionID
 
Constructor Summary
LocalBSPRunner(org.apache.hadoop.conf.Configuration conf)
           
 
Method Summary
 JobStatus[] getAllJobs()
          Get all the jobs submitted.
 ClusterStatus getClusterStatus(boolean detailed)
          Get the current status of the cluster
 java.lang.String getFilesystemName()
          A BSP system always operates on a single filesystem.
 JobProfile getJobProfile(BSPJobID jobid)
          Grab a handle to a job that is already known to the BSPMaster.
 JobStatus getJobStatus(BSPJobID jobid)
          Grab a handle to a job that is already known to the BSPMaster.
 BSPJobID getNewJobId()
          Allocate a new id for the job.
 long getProtocolVersion(java.lang.String protocol, long clientVersion)
           
 java.lang.String getSystemDir()
          Grab the bspmaster system directory path where job-specific files are to be placed.
 JobStatus[] jobsToComplete()
          Get the jobs that are not completed and not failed
 void killJob(BSPJobID jobid)
          Kill the indicated job
 boolean killTask(TaskAttemptID taskId, boolean shouldFail)
          Kill indicated task attempt.
 JobStatus submitJob(BSPJobID jobID, java.lang.String jobFile)
          Submit a Job for execution.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LOG

public static final org.apache.commons.logging.Log LOG

threadPool

protected static volatile java.util.concurrent.ThreadPoolExecutor threadPool

threadPoolSize

protected static int threadPoolSize

futureList

protected static final java.util.LinkedList<java.util.concurrent.Future<BSP>> futureList

barrier

protected static java.util.concurrent.CyclicBarrier barrier

localGrooms

protected java.util.HashMap<java.lang.String,BSPPeerProtocol> localGrooms

jobFile

protected java.lang.String jobFile

jobName

protected java.lang.String jobName

currentJobStatus

protected JobStatus currentJobStatus

conf

protected org.apache.hadoop.conf.Configuration conf

fs

protected org.apache.hadoop.fs.FileSystem fs
Constructor Detail

LocalBSPRunner

public LocalBSPRunner(org.apache.hadoop.conf.Configuration conf)
               throws java.io.IOException
Throws:
java.io.IOException
Method Detail

getProtocolVersion

public long getProtocolVersion(java.lang.String protocol,
                               long clientVersion)
                        throws java.io.IOException
Specified by:
getProtocolVersion in interface org.apache.hadoop.ipc.VersionedProtocol
Throws:
java.io.IOException

getNewJobId

public BSPJobID getNewJobId()
                     throws java.io.IOException
Description copied from interface: JobSubmissionProtocol
Allocate a new id for the job.

Specified by:
getNewJobId in interface JobSubmissionProtocol
Returns:
job id
Throws:
java.io.IOException

submitJob

public JobStatus submitJob(BSPJobID jobID,
                           java.lang.String jobFile)
                    throws java.io.IOException
Description copied from interface: JobSubmissionProtocol
Submit a Job for execution. Returns the latest profile for that job. The job files should be submitted in system-dir/jobName.

Specified by:
submitJob in interface JobSubmissionProtocol
Returns:
jobStatus
Throws:
java.io.IOException

getClusterStatus

public ClusterStatus getClusterStatus(boolean detailed)
                               throws java.io.IOException
Description copied from interface: JobSubmissionProtocol
Get the current status of the cluster

Specified by:
getClusterStatus in interface JobSubmissionProtocol
Parameters:
detailed - if true then report groom names as well
Returns:
summary of the state of the cluster
Throws:
java.io.IOException

getJobProfile

public JobProfile getJobProfile(BSPJobID jobid)
                         throws java.io.IOException
Description copied from interface: JobSubmissionProtocol
Grab a handle to a job that is already known to the BSPMaster.

Specified by:
getJobProfile in interface JobSubmissionProtocol
Returns:
Profile of the job, or null if not found.
Throws:
java.io.IOException

getJobStatus

public JobStatus getJobStatus(BSPJobID jobid)
                       throws java.io.IOException
Description copied from interface: JobSubmissionProtocol
Grab a handle to a job that is already known to the BSPMaster.

Specified by:
getJobStatus in interface JobSubmissionProtocol
Returns:
Status of the job, or null if not found.
Throws:
java.io.IOException

getFilesystemName

public java.lang.String getFilesystemName()
                                   throws java.io.IOException
Description copied from interface: JobSubmissionProtocol
A BSP system always operates on a single filesystem. This function returns the fs name. ('local' if the localfs; 'addr:port' if dfs). The client can then copy files into the right locations prior to submitting the job.

Specified by:
getFilesystemName in interface JobSubmissionProtocol
Throws:
java.io.IOException

jobsToComplete

public JobStatus[] jobsToComplete()
                           throws java.io.IOException
Description copied from interface: JobSubmissionProtocol
Get the jobs that are not completed and not failed

Specified by:
jobsToComplete in interface JobSubmissionProtocol
Returns:
array of JobStatus for the running/to-be-run jobs.
Throws:
java.io.IOException

getAllJobs

public JobStatus[] getAllJobs()
                       throws java.io.IOException
Description copied from interface: JobSubmissionProtocol
Get all the jobs submitted.

Specified by:
getAllJobs in interface JobSubmissionProtocol
Returns:
array of JobStatus for the submitted jobs
Throws:
java.io.IOException

getSystemDir

public java.lang.String getSystemDir()
Description copied from interface: JobSubmissionProtocol
Grab the bspmaster system directory path where job-specific files are to be placed.

Specified by:
getSystemDir in interface JobSubmissionProtocol
Returns:
the system directory where job-specific files are to be placed.

killJob

public void killJob(BSPJobID jobid)
             throws java.io.IOException
Description copied from interface: JobSubmissionProtocol
Kill the indicated job

Specified by:
killJob in interface JobSubmissionProtocol
Throws:
java.io.IOException

killTask

public boolean killTask(TaskAttemptID taskId,
                        boolean shouldFail)
                 throws java.io.IOException
Description copied from interface: JobSubmissionProtocol
Kill indicated task attempt.

Specified by:
killTask in interface JobSubmissionProtocol
Parameters:
taskId - the id of the task to kill.
shouldFail - if true the task is failed and added to failed tasks list, otherwise it is just killed, w/o affecting job failure status.
Throws:
java.io.IOException


Copyright © 2008-2011 The Apache Software Foundation. All Rights Reserved.