맵리듀스(MapReduce) 개념
맵리듀스(MapReduce)는 구글에서 정보 검색을 위한 데이터 가공(색인어 추출, 정렬 및 역 인덱스 생성)을 목적으로 개발된 분산 환경에서의 병렬 데이터 처리 기법이자 프로그래밍 모델이다.
맵리듀스는 비공유 구조(shared-nothing)로 연결된 여러 노드 PC들을 가지고 대량의 병렬처리 방식(MPP, Massively Parallel Processing)으로 대용량 데이터를 처리할 수 있는 방법을 제공한다. 맵리듀스는 LISP 프로그래밍 언어에서 맵(map)과 리듀스(reduce)라는 함수의 개념을 차용하여 시스템의 분산구조를 감추면서 범용 프로그래밍 언어를 이용해 병렬 프로그래밍을 가능하게 한다.
즉 맵(map)과 리듀스(reduce)라는 두 개의 메소드로 구성되어 있으며 맵(map) 메서드는 키-값을 읽어 필터링하거나 다른 값으로 변환하는 작업을 수행 한다. 리듀스(reduce)는 맵(map) 함수를 통해 출력된 결과 값을 새로운 키 기준으로 그룹화(grouping) 한 후 집계연산(Aggregation)을 수행한 결과를 출력한다.
다음 그림은 맵리듀스(MapReduce)의 처리 흐름을 나타낸다.
(http://bart7449.tistory.com/276 블로그에 자세히 설명되어 있습니다.)
맵리듀스 수행 시 파일 시스템의 각 청크들은 맵 함수를 수행하는 Mapper 태스크에 할당된다. Mapper는 여러 노드에 분산되어 있으며 각기 청크를 받아 map 함수를 수행하여 결과를 각 mapper가 수행된 로컬 디스크에 기록한다. 만약 처리할 청크가 남아 있으면 유휴 mapper에게 청크를 할당하여 부하를 분산한다. 모든 청크가 처리 되었다면 맵리듀스 스케줄러는 Reducer 태스크를 수행한다.
리듀스는 여러 노드들로부터 처리해야 할 키 값을 이전 mapper들의 로컬 디스크로부터 읽어와 처리(그룹화, 연산)한다. 데이터 처리 중에 장애 발생 시 mapper의 경우 같은 청크를 대상으로 다시 수행하거나 유휴한 다른 mapper가 해당 청크를 수행하여 내고장성을 지원한다. 리듀스 장애의 경우 mapper의 작업은 건너뛰고 Reducer 작업을 다시 수행한다.
[맵리듀스의 장단점]
장점 | 단점 |
단순하고 사용이 편리 특정 데이터모델이나 스키마, 질의에 의존적이지 않은 유연성 저장 구조의 독립성 데이터복제에 기반한 내구성과 재수행을 통한 내고장성 확보 높은 확장성 | 고정된 단일 데이터 흐름 기존DBMS보다 불편한 스키마 , 질의 단순한 스케줄링 DBMS와 비교하여 상대적으로 낮은 성능 개발도구의 불편함과 기술지원의 어려움 |
[참고자료]
http://bart7449.tistory.com/276
http://blog.sqlauthority.com/2013/10/09/big-data-buzz-words-what-is-mapreduce-day-7-of-21/
2013-10-28 / 강성욱 / http://sqlmvp.kr
'SW Engineering > Hadoop' 카테고리의 다른 글
맵리듀스(MapReduce) 작동방식 (0) | 2015.07.22 |
---|---|
맵리듀스(MapReduce) 구성 (0) | 2015.07.22 |
보조 네임노드 (0) | 2015.07.22 |
네임노드와 데이터노드 (0) | 2015.07.22 |
HDFS 블록 파일 시스템 (0) | 2015.07.22 |