빅데이터공부하기 31-2 WordCount 의사코드

 

지난글에 이어서 WordCount의사코드에 대해 공부하겠습니다.

 

빅데이터공부는 ORACLEJAVA IT공부하자에서 하세요 ^--^

 

 

WordCount의사코드

 

public static class Map extends Mapper<LongWritable, Text, Text, LongWritable>                                             1                        2

{

private final static LongWriable one = new LongWriable(1);

private Text word = new Text();

                    3

 

public void map(LongWriable key, Text value, Context context)

throws IOException, InterruptedException

{

String Iine = value.toString();

String Tokenizer tokenizer = new String Tokenizer(line, " , "\t\r\n\f |,.\"");

while (tokenizer.hasMore Tokens())

{

word set(tokenizer.nextToken().toLowerCase());

context.wrie(word, one);          4

}

}

 

 

1. 입력레코드의 키, 밸류 타입은 인풋포맷이 결정하며 앞서 main에서 보면 TextlnputFormat을 사용. LongWritable, Text등은 자바의 Long과 String 타입의 하둡용 랩퍼.

 

2. 출력레코드의 키, 밸류 타입은 Text, LongWriable인 데 이건 프레임웍에 의해 소팅, 셔플링이 된다음에 reducer로 넘어간다.

 

3. map 메소드내에서 사용할 변수를 두개 미리 만들어둔다.

 

4. map 메소드는 밸류로 넘어온 텍스트 파일의 라인을 String Tokenizer 클래스를 이용해 파싱한 다음 각 단어들을 하나씩 프레임웍으로 넘긴다.

(키는 단어, 밸류는 1)

 

 

빅데이터공부하기 31-2 WordCount 의사코드

+ Recent posts