MapReduce
- 하둡이 제공하는 빌트인 도구
- 데이터를 클러스터에 분배하는 작업 수행
- 데이터를 파티션으로 나누어 클러스터에서 병렬로 처리할 수 있도록 함
- Mapper 는 관심있는 데이터를 뽑아 데이터를 추출하고 구조화
- Reducer 는 mapper 에서 변경, 추출한 데이터를 종합하는 과정
- 인풋데이터를 mapper 를 통해 key value 쌍으로 변환
- 같은 키가 여러번 나타날 수 있음
- ex) 사용자가 영화를 평가한 경우, key 를 user id, value 를 movie id 라 하면 user id 는 평가한 영화의 갯수만큼 중복되게 됨
- 그 외 timestamp 등 불필요한 데이터는 최적화를 위해 제외
- 데이터를 같은 키 별로 분류하고 정렬, 값을 종합함
- reducer 는 각 키에 대해 호출됨
** 서로 다른 클러스터에 저장된 데이터에 대해 키 별로 데이터를 종합
분산처리 방법
- 여러개의 노트에 분배된 데이터가 저장되어있을 때.
- 클라이언트에서 yarn에 요청을 보내고,
- NodeManager 에서 MapReduce 를 시작,
- Application Master 는 작업을 클러스터에 분배하고 MapRecude 작업을 감시
- mapreduce 과정에서 NodeManager 노드에선 HDFS 에서 데이터를 가져와 처리
(7분30초까지 봄)
하지만....
- mapreduce를 직접적으로 쓰는 경우는 적다
- spark 등 mapreduce 의 단점이 개선된 대체제가 있어 잘 사용하지 않게 되었음.
reference
- 글로벌 Best】 Hadoop : 최고의 하둡 실습으로 빅 데이터 길들이기! (한글 자막) 강의