맵리듀스: Difference between revisions
From CS Wiki
No edit summary |
|||
(4 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
[[분류:데이터베이스]][[분류:데이터 | [[분류:데이터베이스]][[분류:데이터 과학]] | ||
;MapReduce | ;MapReduce | ||
;다수의 머신들로 구성한 분산 데이터베이스를 병렬로 처리하기 위한 프로그래밍 모델 | ;다수의 머신들로 구성한 분산 데이터베이스를 병렬로 처리하기 위한 프로그래밍 모델 | ||
Line 7: | Line 7: | ||
== 구성/절차 == | == 구성/절차 == | ||
;맵(Map) 작업과 리듀스(Reduce) 작업으로 구성 | ;맵(Map) 작업과 리듀스(Reduce) 작업으로 구성 | ||
* 아래의 맵 - 셔플 - 리듀스 작업을 여러 번 반복 | |||
[[파일:맵-셔플-리듀스.png]] | [[파일:맵-셔플-리듀스.png]] | ||
== 맵 == | === 맵 === | ||
* 분산된 데이터를 Key-Value로 | * 분산된 데이터를 Key-Value로 구성 | ||
== 셔플 == | === 셔플 === | ||
* 중간 결과를 리듀스로 | * 중간 결과를 리듀스로 전달 | ||
== 리듀스 == | === 리듀스 === | ||
* 리스트에서 원하는 데이터를 찾아서 집계 | * 리스트에서 원하는 데이터를 찾아서 집계 | ||
== 활용 == | |||
* 셔플과 소트는 하둡 등 엔진이 담당한다. | |||
* 개발자는 맵 함수와 리듀스 함수를 개발한다. | |||
** 맵, 리듀스 함수는 대상 데이터에 맞추어 설계해야 한다/ | |||
* 기존 RDBMS의 개념을 도입하여 맵리듀스 작업을 수월하게 도와주는 도구가 '''[[하이브]]''' | |||
== 단점 == | |||
* 하이브를 이용한 기본적인 맵리듀스 작업은 아주 느림 | |||
* 맵리듀스의 가치는 빠른 처리가 아닌 처리할 수 없던 데이터를 처리할 수 있게 해주는 것 | |||
* 더 빠른 처리를 위해 [[스파크]] 등이 사용됨 |
Latest revision as of 21:32, 13 December 2020
- MapReduce
- 다수의 머신들로 구성한 분산 데이터베이스를 병렬로 처리하기 위한 프로그래밍 모델
- 구글에서 처음으로 개념 소개
- 하둡 프레임워크에서 활용
구성/절차[edit | edit source]
- 맵(Map) 작업과 리듀스(Reduce) 작업으로 구성
- 아래의 맵 - 셔플 - 리듀스 작업을 여러 번 반복
맵[edit | edit source]
- 분산된 데이터를 Key-Value로 구성
셔플[edit | edit source]
- 중간 결과를 리듀스로 전달
리듀스[edit | edit source]
- 리스트에서 원하는 데이터를 찾아서 집계
활용[edit | edit source]
- 셔플과 소트는 하둡 등 엔진이 담당한다.
- 개발자는 맵 함수와 리듀스 함수를 개발한다.
- 맵, 리듀스 함수는 대상 데이터에 맞추어 설계해야 한다/
- 기존 RDBMS의 개념을 도입하여 맵리듀스 작업을 수월하게 도와주는 도구가 하이브
단점[edit | edit source]
- 하이브를 이용한 기본적인 맵리듀스 작업은 아주 느림
- 맵리듀스의 가치는 빠른 처리가 아닌 처리할 수 없던 데이터를 처리할 수 있게 해주는 것
- 더 빠른 처리를 위해 스파크 등이 사용됨