최초 작성일 : 2013/02/01 17:15
==============================================
현재 MapReduce는 Java와 C++, 그리고 기타 언어에서 적용이 가능하도록 작성되었다.
오늘은 여기서 약간만 더 내용을 심화 시켜 보도록 하겠다.
오늘의 글은 다음 링크에 링크된 문서에서 발췌, 번역 한 것이다.
http://research.google.com/archive/mapreduce-osdi04-slides/index.html
우선 소개 글에서 맵리듀스가 생겨나게된 배경을 설명하고 있다.
쉽게 말해
' 5년간 구글 인간들이 엄청난 양의 미가공 데이터를 파생테이터로
만들기 위해 특별한 목적의 많은 프로그램을 구현하였는데 사실 이 작업 자체는
매우 쉬운 작업이지만 이 작업을 적절한 시간에 끝내기 위해서는 분산된 많은
서버들 상에서 이루어져야 했고 이 것은 엄청 골치 아픈 일이었다.
그래서 잡다하고 복잡한 기능들(병렬화, 내고장성, 데이터 분산처리, 로드 밸런싱 등)은
라이브러리에 다 숨기고 간단하 연산만을 수행하도록 개념을 잡았다.
이러한 개념은 Lisp 및 다른 언어에서의 기본형 데이터에 대한 표현인 Map과 Reduce에서
그 영감을 얻었다.
그래서 입력값인 각각의 논리적인 레코드들을 중간형태의 key/value 형태로 만들기 위해
map을 적용 시켰고. 다시 여기에서 같은 key들을 공유하는 value들을 적절한 파생 데이터로
조합하기 위해 reduce를 적용 시켰다.
그렇다!
도대체 map이 뭐고 reduce가 뭔지 무지 궁금했는데...
바로 이거였던 것이다.
Map : 논리적 레코드를 key/value형태의 중간 데이터로 만드는 작업
Reduce : key/value 형태의 중간 데이터를 key를 중심으로 재분류하여 분석하는 작업
간단히 말하면 이런 것이다.
그리고 이렇게 만들어진 맵리듀스는
고성능을 발휘할 수 있는 간단하고도 강력한 인터페이스를 만들어 낸 데에 그 의의가 있다.
이상 MapReduce에 대한 간단한 개념을 알아 보았고.
다음 시간에는 조금 더 기술적인 내용을 확인해보도록 하겠다.
'Study > 빅데이터' 카테고리의 다른 글
[옛 글] [BigData] MapReduce - Locality 등... (0) | 2013.07.19 |
---|---|
[옛 글] [BigData] MapReduce - master data structure와 고장 허용 범위 (0) | 2013.07.19 |
[옛 글] [BigData] MapReduce의 구현 (0) | 2013.07.19 |
[옛 글] [BigData] MapReduce - 조금 더 상세하게. (0) | 2013.07.19 |
[옛 글] [BigData] 학습 시작을 위한 용어 정리 (4) | 2013.07.19 |