hadoop NameNode, Secondary NameNode

HanJu Han·2024년 9월 21일

1. 네임노드 (NameNode)

  • Active 네임노드: 현재 클러스터에서 실제로 파일 시스템을 관리하고 클라이언트 요청을 처리하는 네임노드입니다.
  • Standby 네임노드: Active 네임노드가 문제가 생기면 즉시 이를 대체하는 네임노드입니다. 평소에는 Active 네임노드의 상태를 지속적으로 동기화하며, 언제든지 Active로 전환될 준비가 되어 있습니다.

이 두 네임노드는 고가용성(HA) 설정을 통해 Active-Standby 구조로 운영됩니다. Active 네임노드가 비정상적으로 작동하거나 다운되면, Zookeeper 같은 관리 시스템이 이를 감지하고 Standby 네임노드를 Active로 전환시켜 시스템이 계속 동작하게 만듭니다.

2. 세컨더리 네임노드 (Secondary NameNode)

  • 세컨더리 네임노드는 네임노드의 백업이나 대체 노드가 아닙니다. 오해할 수 있지만, 그 역할은 전혀 다릅니다.
  • 세컨더리 네임노드는 네임노드가 저장하는 메타데이터와 로그 파일을 병합하는 역할을 합니다.
  • 네임노드는 파일 시스템의 메타데이터 변경사항을 Edit Log라는 파일에 기록합니다. 시간이 지날수록 이 로그 파일이 커지면 성능 저하가 발생할 수 있는데, 세컨더리 네임노드는 주기적으로 이 Edit Logfsimage(파일 시스템의 스냅샷)를 병합하여 새로운 fsimage 파일을 만들어 네임노드가 효율적으로 운영될 수 있도록 돕습니다.
  • 다시 말해, 세컨더리 네임노드는 메타데이터 로그 관리 보조 역할을 하며, 네임노드가 중단되었을 때 이를 대체하는 기능은 없습니다.

요약

  • 네임노드가 두 개로 Active와 Standby로 구성되고, 이 둘은 고가용성(HA)을 지원하여 하나의 네임노드가 다운되면 다른 네임노드가 즉시 대체합니다.
  • 세컨더리 네임노드는 별도의 노드로 존재하며, 네임노드의 메타데이터와 로그 파일을 병합하는 일을 수행하여 네임노드의 성능을 최적화하는 데 기여합니다. 하지만 네임노드가 고장났을 때 이를 대체하지는 않습니다.

이 방식으로 네임노드의 성능과 가용성을 높이면서, 메타데이터 관리도 효율적으로 이루어집니다.

profile
시리즈를 기반으로 작성하였습니다.

0개의 댓글