📄

Four Minute Papers: MapReduce (번역)

Date
2020/12/22
Tags
Data Science
Translation
Created by
MapReduce 논문을 요약한 Four Minute Papers: MapReduce 글을 번역해 보았다.
Table of Contents

High Level에서 봤을 때, MapReduce란 무엇인가?

대규모 데이터셋을 처리하기 위한 프로그래밍 모델과 구현.

MapReduce는 어떤 문제를 해결해주는가?

컴퓨터 한 대로는 처리하기 힘든 큰 데이터셋을 처리할 때 생기는 복잡한 문제를 해결해준다.

MapReduce는 어떻게 문제를 해결했는가?

MapReduce는 수천 대의 컴퓨터에 걸쳐 병렬로 작업(work)을 Scailing하는 복잡한 일을 수행할 수 있는 비교적 간단한 프레임워크이다.
이 프레임워크는 페타바이트 이상의 대용량 데이터를 신뢰도가 낮은 컴퓨터로 구성된 클러스터 환경에서 병렬 처리를 지원하기 위해서 개발되었다.

구현

사용자는 데이터를 처리하기 위해 map(), reduce() 두 함수만 구현하면 된다.
MapReduce 프레임워크는 데이터 파티셔닝, 여러 대의 컴퓨터에 걸친 작업 스케쥴링, 오류 처리, 나아가 분산 시스템에서의 다른 복잡한 점들 등 어려운 부분들을 핸들링한다.
MapReduce에서 사용되는 데이터는 Key-Value 쌍 형식이어야 한다. 전체적인 MapReduce 연산은 Key-Value 쌍의 set을 입력으로 받아 Key-Value 쌍의 set을 반환한다.
map() 함수는 하나의 K-V 쌍을 받아서 연산이 완료된 중간 단계의 K-V 쌍을 반환한다. MapReduce 라이브러리는 같은 Key를 가진 모든 중간 단계의 값들을 모아 Reduce에 전달한다.
reduce() 함수는 하나의 Key와 이와 연관된 모든 Value들을 입력으로 받아서 합쳐진 Value를 반환한다.

MapReduce의 한계

MapReduce 작업이 모두 끝날 때까지 기다려야 한다. 즉, 수행 시간이 거의 MapReduce 시간에 의해 결정된다.

MapReduce에 대한 비판

Michael Stonebraker는 MapReduce가 메이저가 되는 것에서 한 걸음 물러서서, MapReduce는 근본적으로 새로운 것이 아니며 오히려 기존의 DBMS가 더 낫다고 말했다. #

오늘날 MapReduce의 사용

MapReduce가 공개되었을 때 매우 인기있었고, Apache Hadoop, Couchdb, Riak과 같이 잘 알려진 많은 구현체들이 나왔다.
Google의 MapReduce 구현체는 2003년부터 2014년까지 사용되다가, 현재는 Cloud DataFlow/Apache Beam으로 대체되었다.

References