맵리듀스
IT위키
더 많은 작업
- MapReduce
- 다수의 머신들로 구성한 분산 데이터베이스를 병렬로 처리하기 위한 프로그래밍 모델
- 구글에서 처음으로 개념 소개
- 하둡 프레임워크에서 활용
- 셔플과 소트는 하둡 등 엔진이 담당한다.
- 개발자는 맵 함수와 리듀스 함수를 개발한다.
- 맵, 리듀스 함수는 대상 데이터에 맞추어 설계해야 한다/
- 기존 RDBMS의 개념을 도입하여 맵리듀스 작업을 수월하게 도와주는 도구가 하이브
구글의 맵리듀스 논문은 이 모델로 쉽게 표현되는 계산을 다음처럼 든다.[1]
| 기능 | Map | Reduce |
|---|---|---|
| 단어 빈도수(word count) | (단어, 1) 을 내보낸다 | 단어별로 더해 (단어, 횟수) |
| 분산 grep | 패턴에 맞는 줄을 내보낸다 | 그대로 복사(항등 함수) |
| URL 접근 빈도 | 로그에서 (URL, 1) | URL 별 합계 |
| 역방향 웹 링크 그래프 | 페이지 source 의 링크마다 (target, source) | (target, source 리스트) |
| 역색인 | 문서를 파싱해 (단어, 문서번호) | 문서번호로 정렬해 (단어, 문서번호 리스트) |
| 분산 정렬 | (키, 레코드) | 그대로 내보낸다(정렬은 프레임워크가 한다) |
- 하이브를 이용한 기본적인 맵리듀스 작업은 아주 느림
- 맵리듀스의 가치는 빠른 처리가 아닌 처리할 수 없던 데이터를 처리할 수 있게 해주는 것
- 더 빠른 처리를 위해 스파크 등이 사용됨
- ↑ Jeffrey Dean, Sanjay Ghemawat, 「MapReduce: Simplified Data Processing on Large Clusters」, OSDI 2004, https://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf, 확인일: 2026-11-04.
