WordCount 의사코드

 

 

 

 

public static class Reduce extends Reducer<Text, LongWritable, Text, LongWritable> {

    private LongWritable sumWritable = new LongWritable();

 

    public void reduce(Text key, Iterable<LongWritable> values, Context context)

              throws IOException, InterruptedException {

        long sum = 0;

        for (LongWritable val : values) {

                        sum += val.get();

  }

                    sumWritable.set(sum);

              context.write(key, sumWritable);

        }

 }

 

 

1. 입력레코드의 ,밸류 타입은 mapper에서 사용한 ,밸류타입에 의해 결정

2. reduce 메소드에서 사용할 변수를 미리 하나 만들어둔다.

 

3. reduce 메소드로 넘어오는 밸류 필드는 리스트타입이며 mapper단에서 같은 키값을 갖는

   밸류들이 리스트형태로 묶여진 것이다. 리스트내의 원소들의 값을 합한 다음

   (결국 주어진 단어가 나타난 회수를 카운트하는 ) 단어를 키로 지정하고 합을 밸류로

   지정하여 프레임으로 넘긴다.

   출력레코드는 지정된 출력포맷에 맞춰 앞서 지정된 HDFS 위치에 저장된다

   (Job 클래스의 setOutputPath 메소드).

 

 

 

 

+ Recent posts