JOIN ID AND TITLE V2
개요
- 앞서 간략히 Distributed Cache라는 것에 대해 이야기했는데 이는 작은 사이즈의 읽기전용 파일(흔히 사전)을 task tracker에 working directory에 복사해주는 메커니즘을 말한다.
* Distributed Cache로 사용될 파일은 먼저 HDFS에 복사되고 그 위치가 사용되어야한다.
* Distributed Cache의 디폴트최대크기는 10GB인데 실질적으로 의미있는 최대크기는 100MB 정도.
사용전략
-어느파일을 Distributed Cache로 사용할 것인가?
* CountCitation의 실행 후 나온결과에 TopN을 돌려서 나온 결과를 distributed cache로 사용.
N이 작다면 이 파일의 크기는 작다.
* TopN의 결과 파일이 이미 HDFS에 있으므로 이들 그대로 사용한다.
- 프로그램의 인자로 이 distributed cache파일의 HDFS상의 위치를 넘긴다.
- Main함수에서 이 위치를 단순히 Distributed Cache로 등록한다.
- Mapper 실행시 setup 메소드에서 이 위치를 참조하여 파일을 오픈한다.
- 앞서 이야기했듯이 이 파일은 task의 실행 전에 HDFS에서 로컬파일 시스템으로 복사되기 때문에 그냥 로컬 텍스트 파일을 읽는 코드를 작성하여 ID를 키로 하여 해쉬맵에 빈도수를 값으로 저장한다.
- Mapper의 map 메소드에서 읽혀지는 Title ID 쌍에 대해 ID가 앞서 setup에서 만들어진 해쉬맵에 존재하는지 확인
* 존재하면 키를 타이틀로 하고 밸류는 DocID + "\t"+빈도수로 해서 reducer로 내보낸다.
- 이 경우 Reducer는 딱히 할일이 없기 때문에 Identity Reducer를 지정한다.
'빅데이터 > 빅데이터Hadoop' 카테고리의 다른 글
빅데이터공부하기 59_1 INVERTED INDEX V1 (0) | 2014.12.03 |
---|---|
빅데이터공부하기 58_1 JOIN ID AND TITLE V2 (0) | 2014.12.02 |
빅데이터공부하기57_SORT STRING (0) | 2014.11.26 |
빅데이터공부하기 56_ MyReducer.reduce (0) | 2014.11.24 |
빅데이터공부하기 56_1 MyMapper.map (0) | 2014.11.21 |