HW 구성 요소
하둡은 크게 저장된 데이터를 관리하는 HDFS 계층, 작업을 관리하는 MapReduce 계층으로 구분된다. 각 HW에 데이터 저장과 작업을 적절하게 분산시켜 Multi-node Cluster를 이루게 되는데, 이 때 총 시스템을 감독하는 Master노드와 데이터 저장 및 작업을 수행하는 Slave노드로 구분된다.
하둡의 두 계층 관점에서, Master노드는 두가지 기능을 수행한다. 자신 또는 Slave 노드에 저장된 Data를 괸리하는 Name노드의 역할과 자신 또는 Slave노드가 수행 할 작업이 관리되는 Task Tracker를 총괄감독하는 Job Tracker의 역할이 있다.
Hadoop v1
마스터 노드
마스터 노드의 핵심 기능 두가지는 네임노드와 작업 트래커라 할 수 있다.
네임노드 실행 → 작업 트래커 실행 (→ 리소스 관리자 실행: Hadoop v2)
네임 노드
마스터노드는 빅데이터 시스템의 데이터노드들에 분산 저장되어있는 파일들의 메타정보를 관리한다. 클라이언트로부터 특정 파일 요구가 발생하면, 파일을 보관하고 있는 블록들에 대한 정보를 통해 실제 데이터가 보관된 데이터 노드의 위치를 알려준다.
작업 트래커
클라이언트 응용프로그램이 MapReduce작업을 제출하면, 작업 트래커가 클러스터에서 사용 가능 한 태스크 트래커로 작업을 푸시한다.
슬레이브 노드
슬레이브 노드의 핵심기능 두가지는 작업 노드(태스크 트래커)와 데이터 노드라 할 수 있다. 노드 간 블럭 이동은 최소화하도록 구성해야한다.
데이터 노드 시행 → 태스크 트래커 실행 (→ 노드 관리자 실행: Hadoop v2)
데이터 노드
태스크 트래커
마스터 노드의 작업 트래커로부터 작업을 할당받고, 태스크 트래커는 Heart beat라고 하는 몇 분 간격의 주기적인 작업 진행 상태를 작업 트래커로 전송한다.
하둡 v1 에서 v2로의 변화
하둡 v1에서는 HDFS와 MapReduce 계층 두개로 구성되어 맵리듀스 처리와 자원관리 기능을 서로에 대해 친밀하게 작동(Strictly Coupling)하여 수행하였다. 이후 맵리듀스작업을 통해 효율적으로 처리할 수 있는 일괄처리나 배치처리 작업 뿐만 아니라, 실시간 처리 등 다양한 작업에 대한 요구가 증가하였다. 두 계층간 높은 결합도 때문에, HDFS에 맵리듀스에 특화된 작업 외의 처리기능 도입이 어려워지자, 이를 해결하는 하둡 v2를 공개하였다.
하둡v2는 MapReduce 계층과 HDFS 계층의 결합도를 낮추기 위해(loosely Coupling) YARN(Yet Another Resource Negotiator)이라는 계층을 사이에 추가하였다. YARN 계층은 MapReduce 모듈 이외의 Data Processing 모듈을 연결함으로써 클러스터 단위의 자원 관리 역할을 수행할 수 있다.