2012-11-02 1 views

ответ

1

По умолчанию HashParititioner используется, и весь хэш-код используется для вычисления числа редуктора. Для достижения своей цели вы можете использовать только часть вашего ключа (подпись в вашем случае), и все ключи с одинаковой подписью будут назначены одному и тому же редуктору.

Попробуйте этот код:

public class HashPartitioner<K, V> extends Partitioner<K, V> { 

    public int getPartition(K key, V value,int numReduceTasks) { 

     return key.toString().split("\s+")[0].hashCode() % numReduceTasks; 
    } 
} 
+0

некоторые комментарии могли бы помочь понять – dove

+0

я пишу пользовательские разметки, как и выше, но я встречаю еще один вопрос, не могли бы вы помочь взглянуть на него http://stackoverflow.com/questions/ 13191468/как к специфицировать-на-разметки-для-Hadoop потокового –

Смежные вопросы