(十一)輸出排序,Combiner
阿新 • • 發佈:2018-12-18
輸出排序
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);