• 김영찬

HDFS Failover Process


용어설명

  • NameNode : HDFS 파일 시스템의 핵심입니다. 파일 시스템의 모든 파일에 대한 디렉토리 트리를 유지하고 클러스터에서 파일 데이터가 보관되는 위치를 추적합니다. 이 파일 자체의 데이터는 저장하지 않습니다.


  • DataNode : [HadoopFileSystem]에 데이터를 저장합니다. 적어도 두 개 이상의 DataNode를 가져야 하며 그들 사이에서 복제가 이루어 집니다. 시작 시 DataNode는 NameNode에 연결됩니다. NameNode가 데이터 위치를 제공하면 클라이언트 애플리케이션은 직접 DataNode와 접근 할 수 있습니다. DataNode 인스턴스는 서로 데이터를 복제 할 때 상호 작용할 수 있습니다.


  • JournalNode : edits 정보(즉, 파일 시스템의 journaling 정보)를 저장하고 공유하는 기능을 수행하는 서버


  • DFSZKFailoverController(ZKFC) : NameNode를 모니터링 하고 있다가 active NameNode가 죽으면 standbyNameNode를 active로 전환시키고 죽은 active NameNode를 클러스터에서 제거하고 주키퍼 정보를 갱신한다.


  • fsimage : 현재의 파일 구조 자체에 대한 메타데이터 정보(스냅샷)


  • edit log : fsimage snapshot 이후로 발생된 변경 사항 로그


hdfs(without HA)

  • NameNode(active) : HDFS metadata 메모리 유지/edis log 기록, client 요청 처리, 분산 파일 처리, startup시 fsimage 로드

  • Secondary NameNode : fsImage에 checkpointing 실행(edits log 최신을 fsimage에 반영), client 대응 안함, HA 지원 안함

  • DataNode : 데이터 저장소(YARN NodeManager와 같이 설치)

hdfs(with HA)

  • NameNode(active) : HDFS metadata 메모리 유지/edis log 기록, client 요청 처리, 분산 파일 처리, startup시 fsimage 로드

  • NameNode(standby) : HA 지원(take over), HDFS metadata 메모리 유지/edits log 기록, client 요청 처리, 분산 파일 처리

  • DataNode : 데이터 저장소(YARN NodeManager와 같이 설치)

  • JournalNode : fsimage 파일 checkpointing 실행(edits log 최신을 fsimage에 반영)

Failover Process(without HA)

  • Active NameNode 는 메모리에 파일시스템에 대한 metadata 유지(위치는 DataNode가 유지)

  • 변경이 발생하면 Active NameNode에서 메모리와 NameNode의 Edits Log에 변경사항을 기록

  • Secondary NameNode는 주기적으로 Edits Log를 수집하여 새로운 fsimage 파일에 최신으로 동기화(Checkpointing)

  • 동기화된 최신 fsimage를 Active NameNode로 보내 기존 fsimage를 변경하고 Edits Log는 삭제(clear)

  • Active NameNode 재기동시 fsimage를 메모리로 읽어들여 metadata 구성

  • DataNode에서는 재기동된 Active NameNode에 파티션의 위치 정보를 보고하여 등록

Failover Process(with HA)

  • NameNode(Active/StandBy)s 는 메모리에 파일시스템에 대한 metadata 유지(위치는 DataNode가 유지)

  • 변경이 발생하면 NameNode(Active)에서 메모리에 쓰고 JournalNode에 쓰기를 요청(다중 복제)

  • JournalNode에서는 Edits Log에 변경사항을 기록(다중 복제)

  • Standby NameNode는 Edits Log에 대한 읽기 권한만 가짐(쓰기 권한 없음)

  • Secondary NameNode는 주기적으로 Edits Log를 새로운 fsimage 파일에 최신으로 동기화(Checkpointing)

  • 동기화된 최신 fsimage로 기존 fsimage를 변경하고 Edits Log는 삭제(clear)

  • NameNode 재기동시 fsimage를 메모리로 읽어들여 metadata 구성

  • DataNode에서는 재기동된 NameNode에 파티션의 위치 정보를 보고하여 등록


조회수 1회댓글 0개

최근 게시물

전체 보기