iterador de manipulação em mapreduce

Estou tentando encontrar a soma de quaisquer pontos usando o hadoop. O problema que estou enfrentando é obter todos os valores de uma determinada chave em um único redutor. Se parece com isso.

Redutor:

 public static class Reduce extends MapReduceBase implements
        Reducer<Text, IntWritable, Text, DoubleWritable> {

    public void reduce(Text key, Iterator<IntWritable> values,
            OutputCollector<Text, DoubleWritable> output, Reporter reporter)
            throws IOException {
        Text word = new Text();

        Iterator<IntWritable> tr = values;
        IntWritable v;
        while (tr.hasNext()) {
             v = tr.next();

            Iterator<IntWritable> td = values;
            while (td.hasNext()) {

                IntWritable u = td.next();
                double sum = u+v;
                word.set( u + " + " + v);
                output.collect(word, new DoubleWritable(sum));
            }
        }
    }
}

E eu estou tentando criar duas cópias da variável Iterator para poder passar por todos os valores do segundo iterador enquanto recebo um valor único do iterador anterior (dois loops acima), mas os dois iteradores mantêm o mesmo valor todos A Hora.

Não tenho certeza se este é o caminho certo para fazê-lo. Qualquer ajuda é realmente apreciada.

Obrigado,

Tsegay

questionAnswers(4)

yourAnswerToTheQuestion