MapReduce 개념
1. 맵리듀스 개념
맵리듀스 프로그래밍은 맵(Map)과 리듀스(Reduce)라는 두 가지 단계로 데이터를 처리한다.
맵(Map)은 입력 파일을 한 줄씩 읽어서 데이터를 변형(transformation)하며, 리듀스(Reduce)는 맵의 결과 데이터를 집계(aggregation)한다.
[출처: http://www.slideshare.net/kwnam4u/hadoop-38481079]
2. 맵리듀스 아키텍처
1) 시스템 구성
- 맵리듀스 시스템은 클라이언트, 잡트래커, 태스크트래커로 구성된다.
[출처: http://zetawiki.com/]
- 클라이언트 : 클라이언트는 사용자가 실행한 맵리듀스 프로그램과 하둡에서 제공하는 맵리듀스 API를 의미
- 잡트래커 : 클라이언트가 하둡으로 실행을 요청하는 맵리듀스 프로그램은 잡(job)이라는 하나의 작업 단위로 관리된다.
하둡 클러스터에 등록된 전체 잡의 스케줄링을 관리하고 모니터링 한다.
- 태스크트래커 : 사용자가 설정한 맵리듀스 프로그램을 실행하며, 하둡의 데이터노드에서 실행되는 데몬
잡트래커의 작업을 요청받고, 잡트래커가 요청한 맵과 리듀스 개수만큼 맵 태스크(map task)와 리듀스 태스크(reduce task) 생성