[Hadoop] Hadoop 기본, NameNode 장애 대비책

Woong·2022년 1월 4일
0

Apache Hadoop

목록 보기
1/10

NameNode

  • DataNode 에 데이터 블록이 어디에 저장되어있는지, 복제본이 어떠한지 관리

DataNode

  • 데이터 블록을 저장하는 노드

읽기가 발생하면?

  • NameNode에 질의하여 파일을 요청
  • NameNode가 응답하면 블록 검색을 위해 어떤 DataNode에 접근해야하는지를 알 수 있음
  • DataNode에 접근하여 데이터 블록을 읽음
  • 이 과정은 HDFS 클라이언트 API 를 통해 이루어짐.
    • 어떤 데이터블록을 검색해야하는지
    • 어떤 DataNode에 접근해야 보다 효율적인지

쓰기가 발생하면?

  • ClientNode 는 NameNode에 질의
  • NameNode는 새 항목을 만들고
  • ClientNode는 단일 데이터 노드와 대화하여 데이터를 저장
  • DataNode끼리 대화하여 여러 노드에 걸쳐 데이터 복제본을 저장
  • 저장을 마치고 응답하면 ClientNode에서 파일 저장 및 서로 다른 복제본 저장을 확인
  • NameNode는 새 파일이 복제 방식으로 저장되었음을 기록

NameNode에 장애가 발생하면?

  • 단일 실패 지점 문제
  • 지정된 시간에 하나의 네임노드만 활성화되는 것이 중요
    • 그렇지 않으면 클라이언트가 서로 다른 블록이 저장된 위치에 동의하지 않을 수 있음

메타데이터를 지속적으로 백업

  • 로컬 디스크와 다른 데이터센터의 NFS에 모두 작성
    • NFS 백업에서 로그를 복원 가능
    • 일부 정보는 잃을 수 있지만 가장 간단하고 다운타임이 짧음

SecondaryNameNode 사용

  • 기본 NameNode 의 편집 로그(edit log) 의 복사본을 유지 관리함
    • NameNode 자체인 것은 아님
    • SecondaryNameNode 자체가 NameNode가 되지는 않음

HDFS Federation

  • HDFS 파일 구조 내에 namespace volume 가 있고
  • 각 NameNode가 별도의 네임 노드를 관리
  • NameNode를 분산시키는 방법
  • NameNode 장애가 일어나더라도 전체 HDFS 클러스터 다운 대신 일부 노드 복원 가능

HDFS High Availability(고가용성)

  • 공유 편집로그 (shared edit log) 를 이용하는 Hot standby NameNode 를 실행
  • Zookeeper 가 특정 시간에 어떤 NameNode가 활성 상태인지 추적
  • 클라이언트에선 HDFS 요청 발생시 Zookeeper 에 질의
  • 설정이 다소 복잡하고, 동시에 두개의 NameNode가 실행되어 실패하기도 함

HDFS 사용하기

UI

  • Ambari 를 통해 GUI로 접근.
  • 사용하기 쉬움

CLI

  • Windows, Linux 각각 CLI 로 접근 가능

HTTP/HTTPS proxy

  • 웹 인터페이스를 통해 접근

Java 인터페이스

  • Java 코드 또는 타 언어 API를 통해 접근

NFS Gateway

  • HDFS 자체를 NFS 처럼 마운트하여 일반적인 파일시스템처럼 사용할 수 있음

reference

  • 글로벌 Best】 Hadoop : 최고의 하둡 실습으로 빅 데이터 길들이기! (한글 자막) 강의

0개의 댓글