티스토리 뷰
하둡 분산 파일 시스템 (HDFS)
- 블록 단위로 파일을 처리 (기본 64M)
- 블록 단위로 나뉘어진 파일을 다중 노드에 분산 보관
- 특정 노드 장애에 무정지 대응
네임노드
HDFS의 Master 역할을 한다. 메타 데이터를 저장하고 데이터 노드를 관리한다. 클라이언트에게 SDK를 제공하고, 이를 통해 클라이언트와 데이터노드를 연결해주는 인터페이스 역할을 한다. 그리고 데이터노드로부터 heartbeat 메시지를 전송받아 장애여부를 모니터링하며, 장애가 발생할 경우 새로운 데이터 노드로 복제를 하거나, 용량이 부족하면 여유가 있는 데이터 노드로 블록을 이동시킨다. 메타데이터를 관리할 때 메모리를 기반으로 하기 때문에 메모리의 용량에 따라 저장 가능한 파일이나 디렉토리의 수에 제한이 생긴다.
메타데이터 구조
- 파일명, 디렉토리, 크기, 권한 등의 정보를 담고 있는 파일 이미지
- 파일에 대한 블록 매핑 정보
데이터노드
데이터노드는 파일을 실제 디스크에 블록단위로 저장하는 역할을 한다.
파일 읽기
클라이언트가 SDK를 통해 네임노드에 파일 읽기를 요청하면 네임노드는 파일 블록이 존재하는 데이터노드를 알려주고, 그 이후에 클라이언트는 데이터노드에서 파일을 읽는다.
파일 저장
- 네임노드에 파일 쓰기 권한을 체크한다.
- 네임노드는 파일 블록이 저장될 데이터노드를 반환한다.
- 클라이언트는 데이터노드에 파일 블록을 저장한다.
- 저장된 파일 블록을 데이터노드들끼리 복제한다.
- 복제가 끝나면 ASK를 보낸다.
- 파일 저장을 완료한다.
댓글