版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qinshi965273101/article/details/84786827
输出排序
mapreduce默认会对结果进行排序。
如果是以自定义类型为key,则自定义的类需要实现接口:WritableComparable,这样mapreduce就会按照自定义的排序方法来实现对输出结果的排序。
package hadoop05;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import org.apache.hadoop.io.WritableComparable;
public class Profit implements WritableComparable<Profit>{
@Override
public void readFields(DataInput arg0) throws IOException {
//实现可序列化
}
@Override
public void write(DataOutput arg0) throws IOException {
//实现可序列化
}
@Override
public int compareTo(Profit o) {
//自定义排序,通过返回结果来进行排序
return 0;
}
}
Combiner
combiner的实现与reduce是一样的。继承Reducer,然后重写reduce方法。
最后在Driver类中设置job对应的combiner既可
job.setCombinerClass(CombinerDemo.class);