공부하는 내용을 적은 거라 내용이 틀릴 수 있습니다.
Name Node 가 HDFS 의 메타 데이터(블록 크기, 디렉토리명, 파일명, 상태정보, 접근 권한, 복제 수준, 변경 및 접근 시간 등)를 관리하기 위해
사용하는 사용하는 저장 공간은 총 세 군데.
메모리, 디스크의 edit log, 디스크의 fsimage
client 가 HDFS 에 쓰기 동작(파일 생성 혹은 이동 등)을 요청하면,
Name Node 는 그 트랜잭션을 일단 edit log 에 기록하고,
그 후 메모리 상에 상주하는 메타데이터를 변경한다.
(edit log : 클라이언트가 요청한 쓰기 동작의 트랜잭션들을 disk에 저장한 곳)
edit log 에 어느정도 데이터가 쌓이거나 일정 주기가 되면
edit log 의 내용을 fsimage 로 적재한다.
fsimage 는 메타데이터의 완전하고 영속적인 체크포인트이자 스냅샷이다.
(fsimage : HDFS 전체 메타데이터를 disk 에 저장한 곳)
Name Node 는 메타데이터,네임스페이스 정보를 메모리에 들고 사용한다.
예를 들면 클라이언트가 HDFS 읽기/쓰기 동작 요청을 할 때,
Name Node 는 메모리에서 메타데이터를 참고하여 Node 의 위치를 클라이언트에게 반환해준다.
edit log 과 fsimage 만 있으면 Name Node 가 fail 이 나도 복구를 할 수 있다.
Name Node 가 재실행되면, 먼저 disk 에서 fsimage 를 모두 읽고 메모리에 올린다.
그 다음, edit log(아직 fsimage 에 합쳐지지 않은 트랜잭션들) 를 읽어 메모리에 올린다.
그 후에 Data Node 들로부터 파일 위치 등의 메타데이터를 받아오는 절차를 거치지만, [5번 설명 참고]
여튼 fsimage, edit log 를 읽고 메모리에 올려 메타데이터 복구가 가능하다.
복구 한 이후에 Name Node 의 기본 동작이 가능하다.
https://blog.geunho.dev/posts/hadoop-namenode/
https://likebnb.tistory.com/162
'Hadoop' 카테고리의 다른 글
[Hadoop] 하둡 완벽 가이드 필기 - YARN (0) | 2020.07.29 |
---|---|
[YARN] 스케줄러 scheduler 설명 (0) | 2020.07.23 |
[HDFS] 세이프 모드(safe mode)란? (0) | 2020.07.20 |
[Hadoop] ssh 22번 기본 port number 바꾸기 (0) | 2020.07.20 |
[Hadoop] 고가용성(HA) 설명과 주키퍼 동작 방법 (1) | 2020.07.17 |