11.1 HDFS

11.1.1 영속적인 데이터 구조

네임노드 디렉터리 구조

Untitled

VERSION 파일

Untitled

파일시스템 이미지와 에딧 로그

Untitled

  1. 세컨더리 네임노드는 주 네임노드에게 ‘사용 중인 edits 파일을 이터레이팅 할 것을 요청한다.’ 이제부터 새로 발생하는 edits 로그는 새로운 파일에 저장된다. 주 네임노드는 모든 저장소 디렉터리의 seen_txid 파일을 변경한다.
  2. 세컨더리 네임노드는 HTTP GET 방식으로 주 네임노드에 있는 최신 fsimage와 edits 파일을 가져온다.(결국 에딧로그 하나하나를 의미)
  3. 세컨더리 네임노드는 fsimage 파일을 메모리에 올리고 edits 파일의 각 변경 내역을 적용한다. 그리고 병합된 새로운 fsimage 파일을 생성한다.
  4. 세컨더리 네임노드는 이 fsimage 파일을 HTTP PUT 방식으로 주 네임노드에 전송하고, 주 네임노드는 이 받은 파일을 .ckpt 확장자를 가진 임시 파일로 저장한다.
  5. 주 네임노드는 임시 저장한 fsimage 파일의 이름을 변경해서 사용 가능하게 만든다.

→ 세컨더리 네임노드가 주 네임노드와 비슷한 메모리 용량이 필요한 이유이기도 함. (fsimage 파일을 메모리에 올려야 하기 때문)