1. 맵/리듀스 (Map/Reduce)
대용량 데이터를 신뢰도가 낮은 컴퓨터로 구성된 클러스터 환경에서 병렬 처리를 지원하기 위해서 개발됨
거대한 인풋 데이터를 쪼개어 수 많은 머신들에게 분산시켜서 로직을 수행한 다음 결과를 하나로 합치자는 것이 핵심 아이디어
- MR
- 구글에서 대용량 데이터 처리를 분산 병렬 컴퓨팅에서 처리하기 위한 목적으로 제작한 소프트웨어 프레임워크
- 함수형 프로그래밍에서 일반적으로 사용되는 Map, Reduce라는 함수 기반으로 주로 구성된다.
- Java, C++, 기타 언어에서 적용이 가능
- 아파치 하둡에서 오픈 소스 소프트웨어로 적용되었다.
쪼개기 (Split)
- 크기가 큰 인풋 파일을 작은 단위의 청크들로 나누어 분산 파일 시스템에 저장한다
청크
- Chunk
- 덩어리, 상당한 양, 덩어리로 나누다
- Chunk
- 덩어리, 상당한 양, 덩어리로 나누다
맵 (Map)
- 데이터를 담아두는 자료 구조 중의 하나
- 키와 벨류라는 두 개의 쌍으로 가지고 있는 형태
리듀스 (Reduce)
- 맵을 정리해 나가는(줄여나가는) 방법
- 키를 기준으로
- (같은 키 값을 가진 맵들의) 개수를 센다거나.
- 같은 키를 기준으로 벨류를 모두 더하거나
- 평균을 내거나하는 것
- (같은 키 값을 가진 맵들의) 개수를 센다거나.
- 같은 키를 기준으로 벨류를 모두 더하거나
- 평균을 내거나하는 것
Ghost