맵리듀스: Difference between revisions

From CS Wiki
m (문자열 찾아 바꾸기 - "분류:데이터 분석" 문자열을 "분류:데이터/통계학" 문자열로)
No edit summary
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
[[분류:데이터베이스]][[분류:데이터/통계학]]
[[분류:데이터베이스]][[분류:데이터 과학]]
;MapReduce
;MapReduce
;다수의 머신들로 구성한 분산 데이터베이스를 병렬로 처리하기 위한 프로그래밍 모델
;다수의 머신들로 구성한 분산 데이터베이스를 병렬로 처리하기 위한 프로그래밍 모델
Line 7: Line 7:
== 구성/절차 ==
== 구성/절차 ==
;맵(Map) 작업과 리듀스(Reduce) 작업으로 구성
;맵(Map) 작업과 리듀스(Reduce) 작업으로 구성
* 아래의 맵 - 셔플 - 리듀스 작업을 여러 번 반복
[[파일:맵-셔플-리듀스.png]]
[[파일:맵-셔플-리듀스.png]]


=== 맵 ===
=== 맵 ===
* 분산된 데이터를 Key-Value로 모은다
* 분산된 데이터를 Key-Value로 구성


=== 셔플 ===
=== 셔플 ===
* 중간 결과를 리듀스로 전달한다.
* 중간 결과를 리듀스로 전달


=== 리듀스 ===
=== 리듀스 ===
Line 23: Line 24:
** 맵, 리듀스 함수는 대상 데이터에 맞추어 설계해야 한다/
** 맵, 리듀스 함수는 대상 데이터에 맞추어 설계해야 한다/
* 기존 RDBMS의 개념을 도입하여 맵리듀스 작업을 수월하게 도와주는 도구가 '''[[하이브]]'''
* 기존 RDBMS의 개념을 도입하여 맵리듀스 작업을 수월하게 도와주는 도구가 '''[[하이브]]'''
== 단점 ==
* 하이브를 이용한 기본적인 맵리듀스 작업은 아주 느림
* 맵리듀스의 가치는 빠른 처리가 아닌 처리할 수 없던 데이터를 처리할 수 있게 해주는 것
* 더 빠른 처리를 위해 [[스파크]] 등이 사용됨

Latest revision as of 21:32, 13 December 2020

MapReduce
다수의 머신들로 구성한 분산 데이터베이스를 병렬로 처리하기 위한 프로그래밍 모델
  • 구글에서 처음으로 개념 소개
  • 하둡 프레임워크에서 활용

구성/절차[edit | edit source]

맵(Map) 작업과 리듀스(Reduce) 작업으로 구성
  • 아래의 맵 - 셔플 - 리듀스 작업을 여러 번 반복

맵-셔플-리듀스.png

[edit | edit source]

  • 분산된 데이터를 Key-Value로 구성

셔플[edit | edit source]

  • 중간 결과를 리듀스로 전달

리듀스[edit | edit source]

  • 리스트에서 원하는 데이터를 찾아서 집계

활용[edit | edit source]

  • 셔플과 소트는 하둡 등 엔진이 담당한다.
  • 개발자는 맵 함수와 리듀스 함수를 개발한다.
    • 맵, 리듀스 함수는 대상 데이터에 맞추어 설계해야 한다/
  • 기존 RDBMS의 개념을 도입하여 맵리듀스 작업을 수월하게 도와주는 도구가 하이브

단점[edit | edit source]

  • 하이브를 이용한 기본적인 맵리듀스 작업은 아주 느림
  • 맵리듀스의 가치는 빠른 처리가 아닌 처리할 수 없던 데이터를 처리할 수 있게 해주는 것
  • 더 빠른 처리를 위해 스파크 등이 사용됨