-
Hadoop fsimage 알아보기Hadoop 2023. 12. 11. 17:53728x90반응형
- 목차소개.
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