Database Reference
In-Depth Information
Table 8-2. Configuration of MapReduce types in the old API
Property
JobConf setter method
Input
types
Intermediate
types
K1 V1 K2
Properties for configuring types:
• •
mapred.input.format.class
setInputFormat()
•
mapred.mapoutput.key.class
setMapOutputKeyClass()
mapred.mapoutput.value.class
setMapOutputValueClass()
mapred.output.key.class
setOutputKeyClass()
mapred.output.value.class
setOutputValueClass()
Properties that must be consistent with the types:
• • •
mapred.mapper.class
setMapperClass()
• • •
mapred.map.runner.class
setMapRunnerClass()
•
mapred.combiner.class
setCombinerClass()
•
mapred.partitioner.class
setPartitionerClass()
•
mapred.output.key.comparator.class setOutputKeyComparatorClass()
•
mapred.output.value.groupfn.class setOutputValueGroupingComparator()
•
mapred.reducer.class
setReducerClass()
mapred.output.format.class
setOutputFormat()
The Default MapReduce Job
What happens when you run MapReduce without setting a mapper or a reducer? Let's try
it by running this minimal MapReduce program:
public class
MinimalMapReduce
extends
Configured
implements
Tool
{
@Override
public
int
run
(
String
[]
args
)
throws
Exception
{
if
(
args
.
length
!=
2
) {
System
.
err
.
printf
(
"Usage: %s [generic options] <input>
<output>\n"
,
getClass
().
getSimpleName
());
ToolRunner
.
printGenericCommandUsage
(
System
.
err
);
return
-
1
;
}