
from Scratch
387
미래는 이미 여기에 있다.
다만 아직 완전히 분산되지(
distributed
) 않았을 뿐.
- 윌리엄 깁슨(
William
Gibson
)
맵리듀스(
MapReduce
)는 빅데이터를 병렬 처리할 때 사용하는 프로그래밍 모
델이다. 성능은 굉장하지만 원리 자체는 아주 간단하다.
여러 아이템으로 구성된, 처리하고 싶은 데이터셋이 있다고 해보자. 그 데이
터셋은 웹사이트 로그일 수도 있고, 수많은 책의 텍스트일 수도 있고, 이미지 파
일 또는 다른 무엇이 될 수도 있다. 맵리듀스 알고리즘의 기본적인 원리는 다음
과 같다.
1
.
mapper
함수로 각 아이템을
0
개 이상의 키-값 쌍으로 변환한다. (때로는 이
것을 단순히
map
함수라고 부르기도 하지만, 파이썬에 이미
map
이라는 함수
가 있으니 두 가지를 혼동하지 않기 위해
mapper
라고 부르겠다.)
2
. 동일한 키를 가진 모든 키-값 쌍을 모은다.
3
.
reducer
함수로 같은 키를 가진 쌍들에 대해 원하는 방식으로 처리된 값을
반환한다.
맵리듀스는 유행이 지나갔기 때문에 이 책의 2판에서는 이 장을 제거하는 것을 고려했다.
하지만 여전히 흥미로운 주제이긴 하므로 이를 그대로 두기로 결정했다.
설명이 다소 추상적으로 느껴질 수 있으니 구체적인 예시를 하나 들어 보자. 데
이터 과학에는 몇