Hadoop MapReduce - 대용량 데이터를 병렬로 처리하기 위한 소프트웨어 프레임워크이다. 또한 많은 저가 장비로 수많은 용량 이상의 데이터를 처리하는 프로그래밍 모델이다. 구글에서도 이와 비슷한 MapReduce Framework를 가지고 있고 Hadoop MapReduce는 구글의 MapReduce Framework 논문을 바탕으로 만들어졌음.


장점 : 최초 입력이 여러곳에 있다면 서로 다른 서버에서 수행하게 되어 시간 단축 및 성능 향상을 보일 수 있음.
단점 : JobTracker SPOF(Single Point Of Failure)

1. 입력파일을 라인 단위로 맵 함수에 전달
2. 맵 함수의 출력 결과를 정렬/병합
3. 정렬/병합된 결과를 리듀스 함수에 전달
4. 맵 함수를 분산된 서버에서 수행
5. 분산 처리된 맵 결과를 리듀스가 수행될 서버로 전송

하둡 맵리듀스 시스템은 JobTracker, TaskTracker, Client Library로 구성됨.

JobTracker - 전체 작업을 관리하는 기능을 수행하는 서버다. TaskTracker와 heartbeat를 주고 받으면서 TaskTracker 이 메시지 반환 값에 작업의 ID를 반환한다. 주로 네임노드가 실행되는 서버에서 실행됨. TaskTracker가 장애 발생 및 새로운 TaskTracker 추가 시엔 자동으로   인식하여 클러스터에 추가, 삭제 작업을 수행함.

TaskTracker - 사용자가 요청한 작업을 실행함. 주로 데이터 노드에서 실행되는 서버에서 실행됨. JobTracker로부터 받은 작업 ID로 해당 작업과 관련된 정보를 하둡 파일 시스템에서 가져오고 수행할 프로그램도 가져와 로컬에 저장한다. 수행환경이 설정되면 fork 명령을 통해 프로세스를 할당하여 사용자의 작업 중 특정 맵이나 리듀스 태스크를 실행! 이 시기에 TaskTracker와 Task사이엔 네트워크 채널이 열리고 이 진행상황을 모니터링함.

Client Library - 사용자가 다양한 입력 형태와 분산 처리를 사용할 수 있는 메카니즘 제공, 사용자가 만든 프로그램을 JobTracker로 작업하도록 요청하고 작업 결과를 모니터링 할 수 있는 API 제공함.


아직 개념은 부족하지만 이 output을 통해서 얻은게 많다.

설정파일의 설정과 Client 라이브러리 추가 등 에러 잡느라 너무 힘들었다.

다시 개념으로....

+ Recent posts