맵리듀스 (MapReduce)
쉽게 풀면
수만 장의 시험지를 채점해서 전체 평균을 내야 한다고 해봅시다. 혼자 다 채점하려면 몇 날 며칠이 걸리지만, 채점 도우미 100명에게 시험지를 나눠주고(Map 단계) 각자 담당분의 점수를 매기게 한 뒤, 그 점수들을 한곳에 모아 합산해서 평균을 내면(Reduce 단계) 훨씬 빨리 끝납니다. 맵리듀스도 똑같은 원리입니다.
처리해야 할 데이터를 여러 컴퓨터에 조각내어 나눠주고, 각 컴퓨터가 자기 몫을 독립적으로 계산(Map)한 다음, 그 부분 결과들을 모아서 최종 답을 만들어냅니다(Reduce).
프로그래머는 "각 조각을 어떻게 계산할지"와 "결과를 어떻게 합칠지"만 정해주면 되고, 데이터를 나누고 여러 대의 컴퓨터에 분배하는 복잡한 일은 시스템이 알아서 처리해줍니다.
왜 중요한가
맵리듀스는 데이터 병렬 처리를 단순한 프로그래밍 모델로 표준화하여 대규모 분산 컴퓨팅을 대중화시킨 개념이기 때문에 빅데이터·분산시스템 연구에서 자주 인용되는 기초적인 아이디어입니다. 이후 등장한 Spark, Hadoop 생태계 전반의 설계 철학에 영향을 주었으며, 대규모 로그 분석, 검색엔진 색인 구축, 유전체 데이터 처리처럼 데이터 양이 방대한 여러 응용 분야의 연구에서 비교 기준으로 다뤄집니다.
어떤 절차인가
프로그래머는 두 함수를 정의합니다. Map은 입력 조각 하나를 읽어 (키, 값) 쌍들을 내고, Reduce는 같은 키로 모인 값들을 합쳐 결과를 냅니다(Dean & Ghemawat, 2004). 사이의 셔플 단계에서 같은 키의 쌍이 같은 Reduce 작업으로 모입니다. 입력 분할, 작업 배정, 장애 시 작업 재실행은 실행 시스템이 맡습니다.
가상의 예(계산함): 세 개의 짧은 문서 “a b a”, “b c”, “a c c”의 단어 수를 세는 경우입니다.
| 단계 | 결과 |
|---|---|
| Map(문서마다 단어별 (단어, 1) 출력) | (a,1) (b,1) (a,1) / (b,1) (c,1) / (a,1) (c,1) (c,1) |
| 셔플(키별 묶음) | a: [1,1,1], b: [1,1], c: [1,1,1] |
| Reduce(합산) | a=3, b=2, c=3 |
같은 키를 같은 Reduce가 받는다는 점만 보장되면 문서를 어느 컴퓨터가 처리하든 결과가 같아서, 컴퓨터를 늘려 병렬화하기 쉽습니다.
언제 쓰고 무엇을 얻나
한 대의 컴퓨터에 담기 어려운 로그, 문서, 센서 자료에 단순한 집계나 변환을 적용할 때 쓰입니다. 대표적 오픈소스 구현은 하둡(Hadoop)이며(White, 2015), 국내 논문에서도 하둡 분산파일시스템과 함께 대용량 자료 분석 시스템을 제안하는 형태로 많이 등장합니다.
- 이점: 병렬화 세부를 숨겨 주고, 범용 서버 장애가 있어도 해당 작업만 재실행해 완주합니다.
- 한계: 단계마다 중간 결과를 디스크에 기록하므로 반복 계산(기계학습, 그래프 계산)에는 느립니다. 이를 보완하려고 중간 결과를 메모리에 유지하는 후속 시스템이 나왔습니다(Zaharia 외, 2012).
- 주의: 특정 키에 자료가 쏠리면 한 Reduce 작업이 전체 시간을 늦추므로 키 설계가 성능을 좌우합니다.
논문에는 이렇게 적는다
- 클러스터 구성(노드 수, 코어, 메모리)과 소프트웨어 버전
- 자료의 크기와 형식, Map·Reduce가 하는 일(키와 값을 무엇으로 정했는지)
- Map·Reduce 작업의 수, 중간 결과를 줄이는 장치(컴바이너 사용 여부)
- 비교 대상(단일 서버, 다른 분산 프레임워크)과 지표(처리 시간, 노드 수에 따른 확장성)
- 자료 쏠림과 장애 처리에 대한 논의
논문에서는 이렇게 쓰입니다
실제 논문에서
국내 학술지 논문에서 이 용어가 쓰인 문장을 그대로 옮겼습니다. 제목·학술지·연도와 원문 링크를 함께 적었습니다.
“본 논문은 시계열 특성을 가지는 디지털운행기록계 빅데이터의처리 분석을 대한 연구를 진행하고, 하둡분산파일시스템과 맵리듀스를 이용하여 패턴 기반의 분석을위한 분산 처리의 성능 향상을 이루는 방법론을 제안한다.”
시계열 빅데이터 처리 분석을 위한 맵리듀스 메커니즘 연구, 정보화연구, 2015 · KCI 한국학술지인용색인 · 원문 보기 ↗
“본 논문에서는 기존에 수집된 대량의 개인정보를 단시간에 암호화하기 위한 방법으로 맵리듀스 기반의 분산 암호화 처리 방법을 제안하고, 시스템을 설계하고 구현하였다.”
맵리듀스 기반 대용량 개인정보 분산 암호화 처리 시스템, 한국정보통신학회논문지, 2014 · KCI 한국학술지인용색인 · 원문 보기 ↗
“특히 다양한 인터넷 서비스를 제공하는 기업들은 고객 성향 및 패턴, 보안성 강화를 위해 맵리듀스 기반 빅데이터 분석 기법들을 활용하여 빅데이터 분석하고 있다.”
로그 분석 처리율 향상을 위한 맵리듀스 기반 분할 빅데이터 분석 기법, 한국정보전자통신기술학회 논문지, 2018 · KCI 한국학술지인용색인 · 원문 보기 ↗
예시 문장
아래는 용어의 쓰임을 보여 주려고 만든 예시로, 실제 논문에서 가져온 문장이 아닙니다.
이 문장은 데이터 양이 너무 커서 컴퓨터 한 대로는 감당이 안 되므로, 맵리듀스 방식으로 여러 대의 컴퓨터에 작업을 나눠 동시에 처리했다는 뜻입니다.
생물정보학 연구에서 대용량 서열 데이터 처리에 분산 프레임워크를 적용한 사례를 설명할 때 사용된다.
정보검색 시스템 연구에서 대규모 문서 색인화 작업을 설명할 때 흔히 쓰이는 표현이다.
조금 더 깊게 보면
맵리듀스는 각 단계 사이의 중간 결과를 디스크에 기록하고, 특정 노드가 실패하면 해당 작업만 다른 노드에서 재실행하는 방식으로 장애 허용성을 확보합니다. 이런 견고함 덕분에 신뢰할 수 없는 다수의 범용 서버로도 안정적인 대규모 처리가 가능해졌지만, 매 단계마다 디스크 입출력이 발생해 반복 연산이 많은 작업에는 비효율적이라는 한계가 있어, 이후 메모리 기반 처리를 지원하는 Spark 같은 후속 프레임워크가 등장하게 되었습니다.
주의할 점
맵리듀스는 각 단계가 끝날 때마다 중간 결과를 디스크에 저장하기 때문에 안정적이지만, 그만큼 반복 계산이 많은 머신러닝 작업 등에서는 속도가 느려질 수 있습니다. 이 때문에 이후 등장한 Spark 같은 프레임워크는 중간 결과를 메모리에 유지하는 방식으로 이 단점을 보완했습니다. 여러 서버로 요청을 나누는 로드밸런싱과는 달리, 맵리듀스는 "계산 작업 자체"를 나누고 합치는 데 초점을 둡니다.
헷갈리기 쉬운 용어
맵리듀스는 분산 처리의 한 방식이며 비슷한 말이 많습니다.
| 용어 | 한 줄 설명 | 차이점 |
|---|---|---|
| 맵리듀스 | 데이터를 나눠 동시에 처리(Map)하고 결과를 모아 합치는(Reduce) 방식 | 계산을 나누고 합치는 모델 |
| 아파치 스파크 | 대용량 데이터를 메모리 기반으로 빠르게 분산 처리하는 프레임워크 | 중간 결과를 메모리에 유지 |
| 샤딩 | 큰 데이터베이스를 여러 조각으로 나눠 여러 서버에 분산 저장 | 데이터의 저장 분할 |
| 로드밸런싱 | 요청이 특정 서버에 몰리지 않게 골고루 나눠 처리 | 요청의 분배 |
참고 문헌
- Dean, J., & Ghemawat, S. (2004). MapReduce: Simplified data processing on large clusters. Proceedings of the 6th Symposium on Operating Systems Design and Implementation (OSDI).
- Ghemawat, S., Gobioff, H., & Leung, S.-T. (2003). The Google file system. Proceedings of the 19th ACM Symposium on Operating Systems Principles (SOSP).
- Zaharia, M., Chowdhury, M., Das, T., Dave, A., Ma, J., McCauley, M., Franklin, M. J., Shenker, S., & Stoica, I. (2012). Resilient distributed datasets: A fault-tolerant abstraction for in-memory cluster computing. Proceedings of the 9th USENIX Symposium on Networked Systems Design and Implementation (NSDI).
- White, T. (2015). Hadoop: The Definitive Guide (4th ed.). O'Reilly Media.
표의 기준값은 위 문헌에 근거한 관례이며, 분야·학술지마다 다른 기준을 쓸 수 있습니다.