Download presentation
Presentation is loading. Please wait.
1
맵리듀스 Yonsei University 2nd Semester, 2014 Sanghyun Park
* The slides are from the book “시작하세요! 하둡 프로그래밍: 기초부터 실무까지 하둡의 모든 것” written by 정재화 (위키북스, 2012)
2
목차 맵리듀스 개념 맵리듀스 시스템 구성
3
맵리듀스 개념 (1) 맵리듀스 프레임워크를 이용하면 대규모 분산 컴퓨팅 혹은 단일 컴퓨팅 환경에서 개발자가 대량의 데이터를 병렬로 분석할 수 있음 개발자가 맵리듀스 알고리즘에 맞게 분석 프로그램을 개발하면, 데이터의 입출력과 병렬 처리 등 기반 작업을 프레임워크가 알아서 처리해 줌 맵리듀스 프로그래밍 모델은 단순하게 맵(Map)과 리듀스(Reduce)라는 두 개의 메서드로 구성됨. 두 메서드는 다음과 같은 동작을 수행함 맵: list(k1, v1) list(k2, v2) 리듀스: list(K2, list(v2)) list(k3, v3)
4
맵리듀스 개념 (2) 맵 메서드는 키(k1)와 값(v1)으로 구성된 데이터를 입력 받아, 이를 가공하고 분류한 후 새로운 키(k2)와 값(v2)으로 구성된 목록을 출력함 이 때 맵 메서드가 반복해서 수행되다 보면 새로운 키(k2)를 가지는 여러 개의 데이터가 만들어짐. 새로운 키(K2)로 그룹핑된 값의 목록(list(v2))을 리듀스 메서드의 입력 데이터로 전달함 리듀스 메서드는 값의 목록(list(v2))에 대한 집계 연산을 실행해 새로운 키(k3)와 값(v3)으로 구성된 목록을 생성함 맵리듀스를 사용하여 “read a book”과 “write a book” 이라는 두 줄의 문장으로 구성된 텍스트 파일을 입력 받아 각 단어의 출현 빈도를 분석(계산)하는 프로그램을 작성하려 함 전체 분석 과정은 다음 그림과 같음
5
맵리듀스 개념 (3)
6
맵리듀스 개념 (4) [ 단어 빈도수 분석 과정 ] 맵리듀스는 입력 파일을 키와 값 형식의 데이터로 분리함. 이 예제에서 키는 라인 번호이고 값은 문장임 키와 값 형식의 데이터는 맵 메서드의 입력 데이터로 전달됨 맵 메서드는 라인 번호별로 문장을 체크해 단어 별로 빈도수를 출력함 맵리듀스는 맵 메서드의 출력 데이터를 정렬하고, 병합함 4번의 결과가 리듀스 메서드의 입력 데이터로 전달됨 리듀스 메서드는 새로운 키인 단어별로 각 단어의 빈도수를 합산해서 출력함 리듀스 메서드의 출력 데이터를 하둡 파일 시스템에 저장함
7
맵리듀스 시스템 구성 (1) 맵리듀스 시스템은 클라이언트, 잡트래커, 태스크트래커로 구성됨. 다음 그림은 맵리듀스 시스템의 구성을 나타낸 것임
8
맵리듀스 시스템 구성 (2) 클라이언트는 사용자가 실행한 맵리듀스 프로그램과 하둡에서 제공하는 맵리듀스 API를 의미함
클라이언트가 하둡으로 실행을 요청하는 맵리듀스 프로그램을 잡(job)이라는 하나의 작업 단위로 관리함
9
맵리듀스 시스템 구성 (3) 잡트랙커는 하둡 클러스터에 등록된 전체 잡의 스케줄링을 관리하고 모니터링 함
전체 하둡 클러스터에서 하나의 잡트래커가 실행되며, 보통 네임노드 서버에서 실행됨 사용자가 새로운 잡을 요청하면 잡트래커는 잡을 처리하기 위해 몇 개의 맵과 리듀스를 실행할지 계산함 이렇게 계산된 맵과 리듀스를 어떤 태스크트래커에서 실행할지 결정하고, 해당 태스크트래커에 잡을 할당함
10
맵리듀스 시스템 구성 (4) 태스크트래커는 데이터노드에서 실행되는 데몬이며, 잡트래커가 요청한 맵과 리듀스 개수만큼 맵 태스크와 리듀스 태스크를 생성함 맵 태스크와 리듀스 태스크가 생성되면 새로운 JVM을 구동해 맵 태스크와 리듀스 태스크를 실행함 잡트래커와 태스크트래커는 하드비트라는 메서드로 네트워크 통신을 하면서 태스크트래커의 상태와 작업 실행 정보를 교환함 만약 태스크트래커에 장애가 발생하면 잡트래커는 다른 대기 중인 태스크트래커를 찾아 태스크의 재실행을 요청함
Similar presentations