[HADOOP-1230] Replace parameters with context objects in Mapper, Reducer, Partitioner, InputFormat, and OutputFormat classes

1 min read Original article ↗

This is a big change, but it will future-proof our API's. To maintain backwards compatibility, I'd suggest that we move over to a new package name (org.apache.hadoop.mapreduce) and deprecate the old interfaces and package. Basically, it will replace:

package org.apache.hadoop.mapred;
public interface Mapper extends JobConfigurable, Closeable {
void map(WritableComparable key, Writable value, OutputCollector output, Reporter reporter) throws IOException;
}

with:

package org.apache.hadoop.mapreduce;
public interface Mapper extends Closable {
void map(MapContext context) throws IOException;
}

where MapContext has the methods like getKey(), getValue(), collect(Key, Value), progress(), etc.