HDFS클러스터는 Master 역할을 가지고 있는 네임노드와 Worker 역할을 가지고 있는 데이터노드로 구성되어 있다.
HDFS(Hadoop Distributed File System)는 마스터(master)-슬레이브(slave) 구조로 되어 있다. 즉 마스터 역학을 하는 네임노드(NameNode) 서버 한 대에 슬레이브 역할을 하는 데이ㅁ터노드(DataNode) 서버 여러 대로 구성된다.
네임노드)
💡 네임노드의 주요 역할은 메타데이터 관리와 데이터노드의 관리이다.
- 파일 시스템의 Name Space를 관리하며 모든 파일과 디렉터리에 대한 메타 데이터를 관리
- DN에게 주기적으로 블록 위치 정보를 받아, 클러스터에 저장하고 있는 모든 블록이 어느 DN에 있는지 파악
- DN이 주기적으로 전달하는 하트비트(3초, dfs.heartbeat.interval)와 블록리포트(6시간, dfs.blockreport.intervalMsec)를 이용하여 데이터 노드의 동작상태, 블록상태를 관리한다.
- DN에 문제가 발생하여 지정한 시간동안 하트비트를 받지 못하면 NN은 DN 상태를 Stale 상태로 변경. 이후 일정 시간 동안 응답이 없으면 Dead 노드로 변경합니다.(Live - Stale - Dead )
- 메타 데이터는 FsImage와 EditsLog라는 파일로 네임 노드 로컬 디스크에 저장
데이터노드)
💡 데이터노드는 실질적으로 데이터를 저장하는 역할을 한다.
- 클라이언트나 네임노드의 요청에 의해 데이터를 저장 및 탐색
- 하트비트(Heart Beat)를 통해 주기적으로 네임노드에게 각자의 상태 정보와 가지고 있는 블록의 위치 정보를 전달
- 하트비트가 전달되지 않는 DN은 고장으로 판단하고 더 이상 데이터를 저장하지 않도록 설정한다.
- 블록리포트로 블록의 변경사항을 체크하고, 네임노드의 메타데이터를 갱신한다.
- 데이터노드가 실질적으로 데이터를 소유하고 있지만 마스터 관계에 있는 네임노드가 손상될 경우 데이터노드가 가지고 있는 데이터는 읽거나 복구 할 수 없다.
'데엔(Data-Engineering) > 하둡(Hadoop)' 카테고리의 다른 글
Failover controller란? (0) | 2023.04.09 |
---|---|
HDFS 휴지통 (1) | 2023.04.09 |
Manager 전환 이슈 (0) | 2023.04.08 |
HDFS 저장 용량 확보 과정 (1) | 2023.04.08 |
Why Hadoop? (0) | 2022.11.08 |
댓글