맵리듀스(MapReduce) 구성
맵리듀스 프레임워크는 데이터에 대한 분산과 병렬 처리를 담당한다. 맵리듀스 시스템은 클라이언트, 잡트래커, 태스크트래커로 구성 된다.
[클라이언트]
사용자가 실행한 맵리듀스 프로그램과 하둡에서 제공하는 맵리듀스 API를 의미. 사용자는 맵리듀스 API로 맵리듀스 프로그램을 개발하고 개발한 프로그램을 하둡에서 실행할 수 있다.
[잡트래커(JobTracker)]
클라이언트가 하둡으로 요청하는 맵리듀스 프로그램은 잡(job)이라는 하나의 작업 단위로 관리되며 잡트래커는 하둡 클러스터에 등록된 전체 잡의 스케줄링을 관리하고 모니터링 한다.
사용자가 잡을 요청하면 잡트래커는 잡을 처리하기 위한 맵과 리듀스의 사용계획을 계산하고 어떤 태스크트래커에서 실행할지 결정하여 잡을 할당한다.
잡트래커와 태스크트래커는 하트비트 메서드로 네트워크 통신을 하며 작업의 실행 정보를 주고 받는다. 태스크트래커에 장애가 발생하면 잡트래커는 다른 대기중인 태스크트래커를 찾아 태스크를 재실행 하게 된다.
[태스크트래커(TaskTracker)]
태스크트래커는 사용자가 설정한 맵리듀스 프로그램을 실행하며 하둡의 데이터노드에서 실행되는 데몬이다.
잡트래커가 요청한 맵과 리듀스 개수만큼 맵 태스크(map task)와 리듀스 태스크(reduce task)를 생성한다. 맵 태스크과 리듀스 태스크가 생성되면 새로운 JVM을 구동해 맵 태스크와 리듀스 태스크를 실행 한다. JVM은 재사용 할 수 있게 설계되어 있으며 하나의 데이터노드만 구성하더라도 여러 개의 JVM을 실행하여 데이터를 동시에 분석하는 병렬처리를 한다.
[참고자료]
시작하세요 하둡 프로그래밍 / 위키북스
2013-10-29 / 강성욱 / http://sqlmvp.kr
'SW Engineering > Hadoop' 카테고리의 다른 글
하둡 인코딩 방식 설정 (0) | 2015.07.22 |
---|---|
맵리듀스(MapReduce) 작동방식 (0) | 2015.07.22 |
맵리듀스(MapReduce) 개념 (0) | 2015.07.22 |
보조 네임노드 (0) | 2015.07.22 |
네임노드와 데이터노드 (0) | 2015.07.22 |