HADOOP) MapReduce 기초


MapReduce 


HDFS에 저장된 파일을 분산 처리하는 프레임워크이다. 

맵(Map): 입력 파일을 한 줄 씩 읽어 데이터 변형(개발자가 변형하는 규칙을 정할 수 있음)
리듀스(Reduce): 맵의 결과 데이터를 집계

아키텍쳐 


  • 클라이언트: (사용자가 만든 맵리듀스 프로그램) + (하둡에서 제공하는 맵리듀스 API)
  • 잡트래커 
    • 하둡 클러스터에 등록된 전체 잡(job)의 스케줄링을 관리/모니터링
      • 잡(job): 맵리듀스의 작업단위 
      • 클라이언트가 새로운 잡을 요청 -> 잡을 처리할 맵/리듀스의 개수 계산
      • 맵/리듀스를 실행할 태스크트래커 결정 후 잡을 할당 
      • 하트비트를 통해 태스크트래커의 상태 체크 
      • 장애가 발생한 태스크트래커는 중지 후 다른 태스크트래커에 잡 할당 후 태스크 재실행
  • 태스크트래커
    • 하둡의 데이터노드 서버에 실행되는 데몬
      • 데몬: 백그라운드에서 여러 작업을 수행하는 프로그램으로 사용자가 직접 제어하지 않음
    • 사용자가 설정한 맵리듀스 프로그램(태스크) 실행
    • 잡트래커가 명령을 하면(이러이러한 맵과 리듀스를 몇번 수행해라~) 요청받은 맵과 리듀스 수만큼 맵 태스크와 리듀스 태스크를 생성
      • 맵태스크/리듀스태스크: 사용자가 만든 맵과 리듀스 프로그램

댓글