5. MapReduce 의 흐름 데이터 데이터 데이터 Map Map Map Reduce Reduce
6.
7.
8. Map 과 Reduce 의 역할 Map Map Reduce Reduce 키 1 값 1 키 2 값 2 키 A 값 X 키 B 값 Y 키 B 값 Z A = X B = Y, Z Map 은 새로운 키로 값을 생성 / Reduce 는 같은 키의 값을 통합한다
9. Map 과 Reduce 의 구체적 사례 벚꽃학교의 페이지 단풍학교의 페이지 docID = 1 docID = 2 역 인데스 302 단풍 301 벚꽃 203 페이지 201 의 101 학교 WordID 단어 0 2 302 0 1 301 3 2 3 1 203 2 2 2 1 201 1 2 1 1 101 위치 docID WordID 단풍학교의 페이지 2 벚꽃학교의 페이지 1 값 ( 텍스트 ) 키 (docID)
10. Shuffle – Map 의 출력을 정리 하여 같은 키 값 모음 1:2 201 1:1 101 1:3 203 1:0 301 값 (docID) 키 (wordID) 2:0 302 2:1 101 2:3 203 2:2 201 값 (docID) 키 (wordID) 2:0 302 1:0 301 1:3 2:3 203 1:2 2:2 201 1:1 2:1 101 값 (docID: 위치 ) 의 리스트 키 (wordID)
11.
12. 프로그래밍 언어를 이용한 처리 Map(“1”, “ 벚꽃나무학교 페이지” ) -> [ (“301”, “1:0”), (“101”, “1:1”), (“201”, “1:2”), (“203”, “1:3”), Map(“2”, “ 단풍나무학교 페이지” ) -> [ (“302”, “2:0”), (“101”, “2:1”), (“201”, “2:2”), (“203”, “2:3”), # 1 번째 맵 # 2 번째 맵 # 일련의 Reduce Reduce(“101”, [“1:1”, “2:1”]) -> “101 = 1:1, 2:1” Reduce(“201”, [“1:2”, “2:2”]) -> “201 = 1:2, 2:2” ………………… ..
13.
14.
15. 워커에 의한 공동 작업 GFS GFS Map Map Reduce Reduce 마스터 # MapReduce 전체 모습 워커 워커 MapReduce 전체 동작을 관리 마스터의 요구에 따라 Map, Reduce 실행
16.
17. 3 단계 처리 과정 (Shuffle) 중간 파일 워커 셔 플 키 A 값 키 B 값 키 C 값 키 D 값 . . . . . . . . . . . . . . . 키 B 값 키 A 값 . . . 키 B 값 키 A 값
18.
19. 3 단계 처리 과정 (Reduce) 워커 . . . . . . . . . . . . 키 B 값 키 A 값 . . . 키 B 값 키 A 값 Reduce 출 력