4학년 공부 과정/분산 데이터베이스

하둡(Hadoop) - 네임노드, 세컨더리 네임노드, 데이터노드 및 장애대응

환성 2023. 4. 28. 19:29
728x90

네임노드(Namenode)

  • 파일시스템의 네임스페이스르 관리하고 파일시스템 트리와 그 트리에 포함된 모든 파일과 디렉토리에 대한 메타데이터를 유지한다.
  • 정보들은 네임스페이스 이미지(FsImage)와 에디트 로그(EditLog) 파일에 저장된다.
✔ Editlog : HDFS의 메타데이터에 대한 모든 변화를 기록하는 로그 파일, Namenode 로컬에 저장된다.
✔ FsImage : 파일 시스템의 네임스페이스와 파일에 대한 블록 매핑 정보를 저장하는 파일, 마찬가지로 Namenode 로컬에 저장된다.

 

세컨더리 네임노드(Secondary Namenode)

세컨더리 네임노드 설명

  • EditLog가 커지지 않도록 주기적으로 네임스페이스 이미지를 에디트 로그와 병합한다.
  • 네임노드의 백업용 노드가 아닌 정보를 합치기 위한 노드이다.

 

데이터노드(Datanode)

  • 클라이언트나 네임노드의 요청이 있을 때 블록을 저장하고 탐색하며, 저장하고 있는 블록의 목록을 주기적으로 네임노드에 보고한다.
  • 실제 데이터들은 다 Datanode 에 저장된다.
  • 클러스터가 처음 시작될 때, 각 DataNode에서 자신의 블록 정보를 NameNode에게 알려준다. DataNode는 주기적으로 NameNode에게 Heartbeat와 블록의 목록이 저장된 블록 리포트를 보낸다. 또한 자신의 로컬 디스크에 변경사항이 발생할 때마다 NameNode에게 변경사항을 알려주게 된다.

 

 

네임노드의 동작 과정

네임노드 동작 과정

1. 파일로부터 메모리에 데이터 생성

  • fsimage를 메모리에 로딩
  • edits를 읽어와 메모리에 변경 내역 반영

2. 스냅샷 생성

  • 현재의 메모리 상태를 fsimage로 내림
  • edits 생성

3. 데이터 노드로부터 블록 정보 수신

  • 메모리에 블록-데이터노드 매핑 정보 생성

4. 정상 서비스 시작

 

 

HDFS 장애

HDFS 장애에는 크게 3가지 유형이 있다.

  • 블록 깨짐
  • 데이터 노드 장애
  • 네임 노드 장애

 

블록 깨짐

체크섬 파일

  • 블록과 함께 생성
  • 데이터 노드에 함께 보관

 

데이터노드

  • 주기적으로 블록 스캐너 실행 (체크섬 오류 확인)
  • 문제 있는 블록을 네임노드에 통지

 

클라이언트

  • 블록을 읽을 때 체크섬도 읽어와 오류 확인
  • 오류 있을 시, 네임노드에 해당 블록 오류 통지

 

네임노드

  • 통지받은 오류 블록에 해당하는 다른 복제본 복사
  • 오류 블록 소유 데이터 노드에 삭제 지시

 

데이터노드 장애

데이터노드 → 네임노드: heart beat 전송

  • 주기적으로 전송
✔ heartbeat : 데이터노드는 네임노드에게 하트비트를 3초마다 보내고 heartbeat에는 디스크 가용 공간정보, 데이터이동, 적재량 등의 정보가 들어있다.

네임노드

  • 데이터노드의 heart beat이 없으면 장애로 판단
  • 장애 데이터노드를 서비스 대상에서 제외
  • 장애 데이터노드가 포함한 블록들에 대한 복제 수행 해서 복제본 개수를 맞춤

 

네임노드 장애

하둡1

  • SPOF
  • 수동으로 처리한다.
  • 최소한의 고장 시
    • 공유파일 시스템(NFS 같은 것)editsfsimage 보관한다.
    • 노드 장애 발생시, 다른 장비를 네임노드로 사용한다. 
    • 데이터노드로부터 블록 정보 수신이 필요하다.
  • Active-Standby로 구성한다.

 

하둡2: HA 지원 (Active-Standby), 수동 처리

Active-Standby 동작 과정

  • Active 네임 노드에 장애가 생길 시 Standby 네임 노드가 Active한 상태로 바뀌면서 네임노드의 역할을 대신하는 것을 말한다.

 

하둡2: HA 지원 (Active-Standby), 자동 처리

Active-Standby 자동 처리 과정

 

 

출처:

https://likebnb.tistory.com/162