1. 程式人生 > >maprduce 中reduce數量

maprduce 中reduce數量

efi ref 沒有 利用 owb apr 指定 err div

    
    @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數量