HDFS
- HDFS 목표
- Hardware 장애
- 오류가 나면 자동으로 빠르게 회복되어야함
- 스트리밍 데이터 접근
- 동일한 시간에 더 많은 양의 데이터 처리
- 배치 처리(유저들의 의한 인터렉티브한 사용보다는)
- 거대한 데이터 셋
- 단순한 일관성 모델(데이터 무결성)
- 한번 쓰고 여러번 읽는 파일 처리 모델
- append와 truncate 제외하고는 이미 저장되고 만들어진 데이터는 변경이 안됨
- append는 데이터 끝에서 추가, 원하는 지점에 추가는 안됨
- 이동연산이 데이터이동보다 더 싸다
- 소프트웨어와 하드웨어 플랫폼 사의 이동성
- NameNode 와 DataNode들
- HDFS는 마스터와 슬레이브 구조
NameNode
- 메타 데이터(파일 시스템이미지+파일 블록매핑정보) 관리
- Fs이미지: 파일명, 디렉터리, 크기, 권한
- 파일에 대한 블록 매핑 정보: 어떤 블록이 어느 데이터노드에 저장되어있는지
- 메모리 전체에 메타데이터를 로딩
- 데이터 노드 모니터링
- 블록관리
- 장애가 발생한 데이터 노드의 블록들을 새로운 데이터 노드로 복제
- 용량이 부족한 데이터 노드가 있으면 여유있는 데이터 노드로 블록 이동
- 정해진 복제본 수와 일치하지 않는 블록의 복제본 삭제 혹은 복제
- 클라이언트 요청 접수
DataNode(실제 데이터 + 메타데이터)
- 클라이언트가 HDFS에 저장하려는 데이터를 로컬디스크에 유지(DISK)
- 로우데이터 : 실제 데이터가 저장
- 메타데이터: 체크섬, 파일 생성 일자
- Fs이미지: 파일명, 디렉터리, 크기, 권한
- 파일에 대한 블록 매핑 정보: 어떤 블록이 어느 데이터노드에 저장되어있는지
- 메모리 전체에 메타데이터를 로딩
- 장애가 발생한 데이터 노드의 블록들을 새로운 데이터 노드로 복제
- 용량이 부족한 데이터 노드가 있으면 여유있는 데이터 노드로 블록 이동
- 정해진 복제본 수와 일치하지 않는 블록의 복제본 삭제 혹은 복제
- 클라이언트가 HDFS에 저장하려는 데이터를 로컬디스크에 유지(DISK)
네임노드의 week point(hadoop 1.x)
네임노드는 메모리 영역에서 활동하니까 서버를 껐다가 키면 안의 내용들(메타데이터)이 사라져있다. 그래서 editslog와 fsimage 두개의 파일을 적용해 메타데이터를 로딩함
*editslog: HDFS의 모든 변경이력
보조 네임노드
- editslog가 너무 커져버리면 네임노드에서 fsimage 파일 갱신을 할때 시간이 느려질 수 있음
- 보조네임노드는 주기적으로 (한시간 마다) fsimage을 갱신하는 역할(체크포인트)
댓글
댓글 쓰기