실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

 

 

 

 

Mapper 클래스 설명

 

 

 public static class Map extends Mapper<LongWritable, Text, Text, LongWritable> {
    private final static LongWritable one = new LongWritable(1);
    private Text word = new Text();

    public void map(LongWritable key, Text value, Context context)
                           throws IOException, InterruptedException {
        String line = value.toString();
        StringTokenizer tokenizer = new StringTokenizer(line, "\t\r\n\f |,.\"");
        while (tokenizer.hasMoreTokens()) {
            word.set(tokenizer.nextToken().toLowerCase());
            context.write(word, one);
        }
    }

 

 1. 입력레코드의 키,밸류 타입은 인풋포맷이 결정하며 앞서 main에서 보면 TextInputFormat을 사용. LongWritable,Text등은 자바의 Long과 String 타입의 하둡용 랩퍼. 2. 출력레코드의 키,밸류 타입은 Text, LongWritable인데 이건 프레임웍에 의해 소팅,셔플링이 된다음에 reducer로 넘어간다
3. map 메소드내에서 사용할 변수를 두개 미리 만들어둔다.
4. map 메소드는 밸류로 넘어온 텍스트 파일의 라인을 StringTokenizer 클래스를 이용해 파싱한 다음 각 단어들을 하나씩 프레임웍으로 넘긴다 (키는 단어, 밸류는 1)
 

 

 

 

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

+ Recent posts