maprduce 中reduce数量

Posted 牵牛花

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了maprduce 中reduce数量相关的知识,希望对你有一定的参考价值。

    
    @Override
    public int getPartition(Text key, FlowBean value, int numPartitions) {
        String prefix = key.toString().substring(0, 3);
        Integer provinceId = proviceDict.get(prefix);
        
        return provinceId==null?4:provinceId;
    }

在hadoop 默认的是hashpartitioner,简单的例子是用hashcode除以numPartitions的数量,这样在数据均匀的前提下,数据可以被均匀的分到每个reduce中.

还有一种情况是不按照numPartitions而是根据业务来判断的,比如按照订单的类别,将同一类别的订单数据发送到同一个reduce中,将同一个省份的电话号码的数据发送到到同一reduce中

此时在计算式就没有利用numpartiton,在代码中执行reducenumber时也要根据业务场景来指定

以上是关于maprduce 中reduce数量的主要内容,如果未能解决你的问题,请参考以下文章

几个关于js数组方法reduce的经典片段

并行编程框架MapRduce(下)

hive设置map和reduce数量

什么是在 C++ 中获取总内核数量的跨平台代码片段? [复制]

js数组高阶方法reduce经典用法代码分享

js数组高阶方法reduce经典用法代码分享