사용자:Sephyr84/연습장

위키백과, 우리 모두의 백과사전.
둘러보기로 가기 검색하러 가기

맵리듀스(MapReduce)는 2004년 구글에서 대용량 데이터 처리를 분산 병렬 컴퓨팅에서 처리하기 위한 목적으로 제작하여 발표한 프로그래밍 모델이다.[1]

/*맵리듀스 프로그램은 선택과 정렬을 하는 Map() 작업과 요약을 하는 Reduce() 작업으로 구성된다. "맵리듀스 시스템(기반 시설, 프레임워크)"은 대용량의 데이터를 분산 서버들에서 여러개의 작업으로 병렬 처리하고 각 작업의 결과들을 하나의 서버로 전송하고 합친다.*/

이 모델은 함수형 프로그래밍에서 일반적으로 사용되는 Map Reduce라는 함수에서 영감을 받았다.[2] 맵리듀스 프레임워크의 가장 중요한 성과는 맵과 리듀스 함수에 있는 것이 아니라 확장성과 장애 허용 시스템이라는 것이다.

현재 MapReduce는 JavaC++, 그리고 기타 언어에서 적용이 가능하도록 작성되었다. 대표적으로 아파치 하둡에서 오픈 소스 소프트웨어로 적용된다.

개요[편집]

'맵리듀스'는 대용량 데이터를 많은 수의 컴퓨터로 구성된 클러스터에서 병렬처리하는 프레임워크이다.

"Map" 과정: 마스터 노드(master node)는 입력값을 좀 더 작은 여러 문제로 나누고 워커 노드(worker node)로 분산시킨다. 워커 노드는 작은 문제들을 처리하고 그 결과를 마스터 노드로 전달한다.

"Reduce" 과정: 마스터 노드는 모든 결과값을 모아서 (처음에 풀기로 한 문제의 해답와 같은)출력값 형태로 결합한다.

맵리듀스는 map과 reduce 작업을 분산처리가 가능하게 한다. 각각의 map 작업은 다른 작업에 독립적으로 수행이 되고 모든 map 작업은 병렬로 처리된다. 그리고 비슷하게 reduce 작업은 map 작업의 결과

논리적 관점[편집]

같이 보기[편집]

참조[편집]

  1. Google spotlights data center inner workings | Tech news blog - CNET News.com
  2. "Our abstraction is inspired by the map and reduce primitives present in Lisp and many other functional languages." -"MapReduce: Simplified Data Processing on Large Clusters", by Jeffrey Dean and Sanjay Ghemawat; from Google Research

바깥 고리[편집]