hadoop job.setSortComparatorClass和job.setGroupingComparatorClass

一,job.setPartitionerClass(PartitionClass.class);

作用:对key取hash值(或其它处理),进入不同的reduce

二,job.setSortComparatorClass

对进入同一个reduce的 键 或键的部分 进行排序,按照情况需要;

三,job.setGroupingComparatorClass

  • 进入同一个reduce的key是按照顺序排好的,该类使得:
  • 如果连续(注意,一定连续)的两条或多条记录满足同组(即compare方法返回0)的条件,
  • 即使key不相同,他们的value也会进入同一个values,执行一个reduce方法。
  • 相反,如果原来key相同,但是并不满足同组的条件,他们的value也不会进入一个valeus。
  • 最后返回的key是:满足这些条件的一组key中排在最后的那个。
public class WordCountGroupComparator extends WritableComparator {

  // 要在构造函数里显示调用父类构造函数,否则会报空指针异常
    public WordCountGroupComparator() {
        super(Text.class,null,true);
    }
    
    @Override
    public int compare(Object a, Object b) {
        System.out.println("group comp...");
        return 0;
    }

    @Override
    public int compare(byte[] b1, int s1, int l1, byte[] b2, int s2, int l2) {
        return 0;
    }
}
上一篇:对象比较的思考


下一篇:OGG的Veridata组件使用