하둡 완벽 가이드 4판 맛보기

Page 112

해서는 상당한 시간이 소요된다. 이 작업을 수행하는 동안은 파일시스템을 사용하지 못하는 원 치 않는 상황에 처하게 된다. NOTE_ 각 fsimage 파일은 파일시스템에 존재하는 모든 디렉터리와 파일의 아이노드 inode 정보를 직렬화한

파일이다. 각 아이노드는 파일이나 디렉터리 메타데이터의 내부 구조를 나타내며 파일의 복제 수준, 변경 및 접근 시간, 접근 권한, 블록 크기, 파일을 구성하는 블록 집합과 같은 정보를 가지고 있다. 디렉터리에는 파일 과 달리 변경 시간, 권한, 할당 크기와 같은 메타데이터 정보가 저장되어 있다. 블록이 실제 저장된 데이터노드에 대한 정보는 fsimage 파일에 기록되지 않는다. 대신 네임노드는 매핑 정보 (어떤 블록이 어느 데이터노드에 저장되어 있는지)를 메모리에서 따로 관리한다. 네임노드는 클러스터에 데 이터노드가 추가될 때마다 블록 목록에 대한 정보를 데이터노드에 요청하여 매핑 정보를 구성하며, 주기적으 로 네임노드의 블록 매핑 정보를 최신 상태로 갱신한다.

이러한 문제의 해결책은 보조 네임노드를 운영하는 것이다. 보조 네임노드의 용도는 주 네임노 드의 메모리에 있는 파일시스템 메타데이터의 체크포인트를 만드는 것이다.1 체크포인팅 작업 의 절차는 다음과 같으며, [그림 11-1]은 에디트 로그와 fsimage 파일에 관한 내용을 도식화한 것이다. 1 보조 네임노드는 주 네임노드에 사용 중인 edits 파일을 순환할 것을 요청한다. 이제부터 새로 발생하는 edits 로그는 새로운 파일에 저장된다. 주 네임노드는 모든 저장소 디렉터리의 seen_txid 파일을 변경한다. 2 보조 네임노드는 HTTP GET 방식으로 주 네임노드에 있는 최신 fsimage와 edits 파일을 가져온다. 3 보조 네임노드는 fsimage 파일을 메모리에 올리고 edits 파일의 각 변경 내역을 적용한다. 그리고 병합된 새 로운 fsimage 파일을 생성한다. 4 보조 네임노드는 새로운 fsimage 파일을 HTTP PUT 방식으로 주 네임노드에 전송하고, 주 네임노드는 받 은 파일을 .ckpt라는 확장자를 가진 임시 파일로 저장한다. 5 주 네임노드는 임시 저장한 fsimage 파일의 이름을 변경하여 사용 가능하게 만든다.

마지막 단계까지 완료되면 주 네임노드는 최신 fsimage 파일과 작은 edits 파일을 가지게 된다. 이때 edits 파일은 빈 파일이 아닐 수도 있는데, 보조 네임노드에서 체크포인팅 작업이 진행되 는 동안 몇 번의 edits 변경 요청을 받았을 수 있기 때문이다. hdfs dfsadmin -saveNamespace 명령을 이용하면 관리자는 네임노드를 안전 모드로 변환하여 체크포인팅 절차를 수동으로 실행 할 수 있다. 1 네임노드를 -checkpoint 옵션으로 시작하면 또 다른 (주) 네임노드에 대한 체크포인팅 프로세스를 실행할 수 있다. 이런 방식은 보조 네임노드를 실행하는 것과 기능은 동일하며, 실행 시간을 보면 보조 네임노드와 거의 차이가 없다. 보조 네임노드는 가장 검증되고 믿을 수 있는 옵션이다. 고가용성 환경(3.2.5절 ‘HDFS 고가용성’ 참조)에서는 대기(standby) 네임노드가 체크포인팅 절차를 수행한다.

406 3부 하둡 운영


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.