ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Hadoop fsimage 알아보기
    Hadoop 2023. 12. 11. 17:53
    728x90
    반응형



    - 목차

     

    소개.


    fsimage 는 네임노드가 파일들의 메타데이터를 저장하는 영역입니다.
    hdfs 를 통해서 파일이 생성될 때, 실질적인 파일은 block 단위로 DataNode 에 저장되게 되는데요.
    해당하는 파일의 block 들을 편리하고 안정적으로 조회하기 위하여 파일의 메타데이터들이 fsimage 에 저장됩니다.

    fsimage 를 통해서 데이터의 영구성이 보장되구요.
    네임노드의 in-memory 구조와 Edit Log 와 함께 네임노드의 데이터 관리를 위하여 사용됩니다.

    fsimage 는 이름에서 알 수 있듯이, File System 의 image 입니다.
    네임스페이스로 관리되는 File System 안에서 데이터들을 스냅샷 형태로 관리하죠.
    네임노드가 관리하는 대상이 파일의 메타데이터이기 때문에 그 용량이 크진 않습니다.

    이처럼 여러가지 특징이 있는 fsimage 에 대해서 설명해보려고 합니다.

    checkpoint.

    Hadoop 네임노드에는 체크포인트라는 개념이 존재합니다.
    체크포인트는 fsimage 를 생성하는 프로세스인데요.
    주기적으로 체크포인트가 실행되며, 체크포인트의 결과로써 fsimage 라는 스냅샷이 생성됩니다.
    fsimage 는 현재 in-memory 에 존재하는 메타데이터들의 상태를 기록하구요.
    네임스페이스 별로 데이터가 어떻게 구성되어 있는지,
    파일명, replication factor, DataNode 에 분산된 block 정보 등이 기록됩니다.

    fsimage 는 Edit Log 와 밀접한 관련이 있습니다.
    만약 네임노드가 시스템적인 이슈로 재시작이 될때, Edit Log 에 저장된 기록들을 기반으로 Recovery 가 가능합니다.
    따라서 Edit Log 는 Recovery 관점에서 중요한 요소인데요.
    체크포인트 시점에 Edit Log 의 기록을 삭제되고,
    새로운 로그들이 쌓일 수 있게 됩니다.

    Checkpoint 의 주기는 어떻게 될까 ?


    체크포인트의 주기는 hdfs-site.xml 에 저장됩니다.

    <property>
      <name>dfs.namenode.checkpoint.period</name>
      <value>3600</value> <!-- 1 hour in seconds -->
    </property>
    


    dfs.namenode.checkpoint.period 에 설정된 값을 주기로하여 체크포인트가 발생합니다.

    fsimage 는 어디에 저장될까?


    fsimage 는 네임노드의 로컬 파일시스템에 저장이 됩니다.
    정확한 저장 위치는 hdfs-site.xml 파일에 설정되어 있는데요.
    dfs.namenode.name.dir 변수의 값으로 설정이 가능합니다.

    <property>
      <name>dfs.namenode.name.dir</name>
      <value>/path/to/name/data</value>
    </property>
    



    fsimage 는 Retention 이 있을까?

    fsimage 는 File System 의 image 입니다.
    보통 파일 처리 관점에서 이미지란 스냅샷 형식으로 데이터의 현 상태를 기록하는 방식인데요.
    fsimage 또한 주기적으로 스냅샷이
    생성됩니다.

    그럼 이러한 fsimage 들은 Retention 이 존재할까요?
    오래된 fsimage 는 어떻게 처리될까요 ?

    체크포인트가 발생하는 매회에 오래된 fsimage 들을 삭제가 됩니다.
    그리고 유지할 fsimage 의 갯수를 지정할 수 있는데요.
    hdfs-site.xml 의 dfs.namenode.num.checkpoints.retained 값이 유지할 fsimage 의 갯수입니다.


    <property>
      <name>dfs.namenode.num.checkpoints.retained</name>
      <value>2</value>
      <description>The number of image checkpoint files (fsimage_*) that will be retained by
      the NameNode and Secondary NameNode in their storage directories. All edit
      logs (stored on edits_* files) necessary to recover an up-to-date namespace from the oldest retained
      checkpoint will also be retained.
      </description>
    </property>

     

    반응형

    'Hadoop' 카테고리의 다른 글

    Hadoop File Permission 알아보기 (ACL)  (0) 2023.12.15
    Hadoop DataNode 알아보기  (0) 2023.12.12
    Hadoop Namespace 알아보기  (0) 2023.12.04
    Hadoop Edit Log 알아보기  (0) 2023.12.04
    Hadoop Block 알아보기  (0) 2023.11.27
Designed by Tistory.