public class MultithreadedTableMapper<K2,V2> extends TableMapper<K2,V2>
It can be used instead when the Map operation is not CPU bound in order to improve throughput.
Mapper implementations using this MapRunnable must be thread-safe.
The Map-Reduce job has to be configured with the mapper to use via
setMapperClass(Job, java.lang.Class<? extends <any>>) and the number of thread the thread-pool can use with the
getNumberOfThreads(JobContext) method. The default value is 10 threads.
| Modifier and Type | Field and Description |
|---|---|
static String |
MAPPER_CLASS |
static String |
NUMBER_OF_THREADS |
| Constructor and Description |
|---|
MultithreadedTableMapper() |
| Modifier and Type | Method and Description |
|---|---|
static <K2,V2> Class<<any>> |
getMapperClass(JobContext job)
Get the application's mapper class.
|
static int |
getNumberOfThreads(JobContext job)
The number of threads in the thread pool that will run the map function.
|
void |
run(Context context)
Run the application's maps using a thread pool.
|
static <K2,V2> void |
setMapperClass(Job job,
Class<? extends <any>> cls)
Set the application's mapper class.
|
static void |
setNumberOfThreads(Job job,
int threads)
Set the number of threads in the pool for running maps.
|
public static final String NUMBER_OF_THREADS
public static final String MAPPER_CLASS
public static int getNumberOfThreads(JobContext job)
job - the jobpublic static void setNumberOfThreads(Job job,
int threads)
job - the job to modifythreads - the new number of threadspublic static <K2,V2> Class<<any>> getMapperClass(JobContext job)
K2 - the map's output key typeV2 - the map's output value typejob - the jobpublic static <K2,V2> void setMapperClass(Job job,
Class<? extends <any>> cls)
K2 - the map output key typeV2 - the map output value typejob - the job to modifycls - the class to use as the mapperpublic void run(Context context)
throws IOException,
InterruptedException
IOExceptionInterruptedException