微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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;
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐