의견.png

맵리듀스

위키원
theraker (토론 | 기여)님의 2020년 8월 28일 (금) 17:33 판 (장단점)
이동: 둘러보기, 검색
구글(Google)

맵리듀스(MapReduce)는 구글(Google)에서 대용량 데이터 처리를 분산 병렬 컴퓨팅에서 처리하기 위한 목적으로 제작하여 2004년 발표한 소프트웨어 프레임워크이다.

개요

맵리듀스(MapReduce)는 2004년 구글에서 대용량 데이터를 분산처리하기 위해 발표한 대용량 분산 처리 프레임워크이다. 이 프레임워크는 테라바이트 또는 페타바이트 이상의 대용량 데이터를 저렴한 x86 서버를 클러스터링해 분산 처리한다. 맵리듀스에서 데이터를 처리하는 기본 단위는 매퍼(Mapper)와 리듀스(Reduce)다. 많은 양의 데이터를 맵리듀스 형태로 작성하면, 클러스터링 환경에서 효과적으로 분산 처리할 수 있다. 맵리듀스의 핵심은 입력과 출력이며, Key와 Value로 구성된다. 맵(Map)은 산재된 데이터를 키와 밸류 형태로 연관성이 있는 데이터로 묶는 작업을 하며, 리듀스는 맵 작업 결과에서 중복 데이터를 제거한 후 원하는 데이터를 추출하는 작업을 수행한다.[1]

알고리즘

맵리듀스의 논리적 데이터 처리 절차는 다음과 같다.

  • 1단계
혼재된 각종 데이터 세트를 각각 키와 밸류 쌍으로 묶어서 Map 함수의 입력 값으로 보내는 단계다. 전송된 데이터 세트를 Map을 통해 필요한 분석 대상만을 각각 추출한 후 필요 없거나 잘못된 레코드를 제거하는 작업을 한다. 예를 들어 대용량 로그 파일은 SAM 파일 형태로 생성되거나 실시간으로 발생하는 경우가 대부분이다. 파싱 작업을 통해 원하는 형태로 데이터를 가공하는데, 이러한 작업을 효과적으로 할 수 있는 것이 바로 맵리듀스다.
  • 2단계
1단계 작업이 완료되면, 분석 대상 값만을 추출한다. 추출된 분석 대상 데이터를 키-밸류 형태로 정렬해 Reduce에게 보낸다. 전송된 데이터는 Reduce 함수의 입력 값으로 사용된다.
  • 3단계
Reduce 함수로 2단계에서 받은 입력값을 분석해 원하는 값을 구하는 단계다. 다시 말하면, Map은 산재된 입력 데이터를 원하는 형태의 데이터와 묶어주는 작업을 통해 Repository 데이터 형태를 띄게 된다. 이 단계에서는 리듀스를 통해 (중복된 값을 제거해) 원하는 데이터만 추출하는 작업을 진행한다.[1]

장단점

장점

  • 단순하고 사용이 편리하다
  • 특정 데이터 모델이나 스키마, 질의에 의존적이지 않은 유연성이 있다.
  • 저장 구조의 독립성이 있다.
  • 데이터 복제에 기반한 내구성과 재수행을 통한 내고장성을 확보한다.
  • 높은 확장성을 가지고 있다.

단점

  • 단일 데이터 흐름이 고정적이다.
  • 기존 DBMS보다 스키마와 질의가 불편하다.
  • 스케줄링이 단순하다.
  • DBMS와 비교하여 상대적으로 성능이 낮다.
  • 개발도구의 불편함과 기술지원에 있어서 어려움이 있다.[2]

각주

  1. 1.0 1.1 디비가이드넷,〈맵리듀스
  2. SungWook Kang,〈맵리듀스 개념〉, 2013-10-28

참고자료

같이 보기


  의견.png 이 맵리듀스 문서는 솔루션에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.