본문 바로가기
데엔(Data-Engineering)/하둡(Hadoop)

네임노드 & 데이터노드

by KwonSoonBin 2023. 4. 8.

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

댓글