HDFS는 마스터(Master)와 슬레이브(Slave) 구조로 이루어져 있다.
마스터-슬레이브 구조는 1개의 하드웨어(마스터)가 1개 이상인 다른 기기(슬레이브)를 제어하는 형태이다.
마스터 역할을 수행하는 서버를 네임노드라고 하고 슬레이브 역할을 수행하는 서버를 데이터노드라고 한다.
아래는 각 역할에 대해 간략하게 정리한 것이다.
1) 네임노드 역할
① 메타 데이터(파일 시스템이미지+파일 블록매핑정보) 관리
- 파일 시스템 이미지: 파일명, 디렉터리, 크기, 권한
- 메모리에 저장된 메타데이터의 파일 시스템 이미지를 저장한 파일(스냅샷)
- 파일에 대한 블록 매핑 정보: 어떤 블록이 어느 데이터노드에 저장되어있는 지
- 메모리 전체에 메타데이터를 로딩
② 데이터 노드 모니터링
- 데이터 노드가 3초마다 보내는 하트비트(heartbeat)를 네임노드가 받음
- 하트비트로 네임노드는 데이터 노드의 실행상태와 용량 체크
- 하트비트 전송 X -> 장애 감지
③ 블록관리
- 장애가 발생한 데이터 노드의 블록들을 새로운 데이터 노드로 복제
- 용량이 부족한 데이터 노드가 있으면 여유있는 데이터 노드로 블록 이동
- 정해진 복제본 수와 일치하지 않는 블록의 복제본 삭제 혹은 복제
④ 클라이언트 요청 접수
2) 데이터노드 역할
① 클라이언트가 HDFS에 저장하려는 데이터를 로컬디스크에 유지(DISK)
- 메타데이터: 체크섬, 파일 생성 일자
- 로우데이터 : 실제 데이터가 저장
3) 네임노드의 약점(Hadoop 1.x)
- 네임노드는 메모리에 ‘파일 시스템 메타 데이터’를 관리
- 서버가 꺼지면 ‘파일 시스템 메타 데이터’는 사라짐
- 서버를 다시 켜도 ‘파일 시스템 메타 데이터’를 관리하기 위해 네임노드에는 editslog와 fsimage라는 파일을 저장
- 에디트 로그(editslog): HDFS의 모든 변경이력이 담겨 있음 HDFS에 저장된 파일을 수정하면 네임노드에 에디트 로그 만들어짐
- Fsimage : ‘파일 시스템 메타 데이터’의 스냅샷
- 네임노드가 시작이 되면 Fsimage를 메모리로 로딩
- Fsimage는 에디트로그를 반영함
- 에디트 로그가 너무 커져버리면 Fsimage 파일을 메모리로 로딩하는 시간이 느려짐
4) 보조 네임노드 역할
- 하둡 1.0 버전에서 주로 사용됨(네임노드가 오로지 하나만 작동 될 때 사용)
- 주기적으로(한시간 마다) Fsimage를 갱신하는 역할을 함(체크포인트라고도 함)
'data engineering' 카테고리의 다른 글
빅데이터 수집 (0) | 2018.07.29 |
---|---|
Hadoop의 개요 #4 - MapReduce와 YARN (0) | 2018.07.25 |
Hadoop의 개요 #4 - 네임노드 HA(High Availability:고가용성) (0) | 2018.07.23 |
Hadoop의 개요 #2 - HDFS 특징 (0) | 2018.07.13 |
하둡(Hadoop)의 개요 #1 (0) | 2018.07.10 |