1. Hadoop이란?
1) 하나의 고사양 컴퓨터가 아닌, 범용 컴퓨터 여러 대를 클러스터화하여 대규모 데이터를 처리
2) 데이터를 병렬로 처리하여 속도가 향상됨
2. HDFS(Hadoop File System)
- Hadoop이 실행하는 파일들을 관리해주는 프로그램
- 크게 NameNode와 DataNode로 구성
- 기존의 대용량 파일 시스템과의 차이점은 저사양 서버를 이용해 스토리지를 구성할 수 있다는 것
- HDFS에 저장되는 데이터는 물리적으로 분산된 서버의 로컬 디스크에 저장됨
- 파일의 읽기와 저장같은 제어는 HDFS에서 제공되는 API를 통해 처리됨
3. HDFS의 구조
- 기본적으로 Master - Slave 구조로 이루어져 있음
- 이는 1개의 하드웨어(Master)가 1개 이상의 다른 기기(Slave)를 제어하는 형태
- Master 역할을 하는 것이 NameNode, Slave 역할을 수행하는 서버를 DataNode라 함
4. NameNode의 역할
- 메타데이터 관리: Hadoop에서 처리하는 파일 속성 정보나 파일 시스템 정보를 메모리에서 직접 관리
- HDFS 사용상황 관리: DataNode와 주기적으로 상황을 주고 받으며, DataNode의 용량이 다 차면 다른 DataNode로 블록을 이동 가능하도록 만들어줌
- 클라이언트의 HDFS 처리 요청 접수
- DataNode 다운 여부 감시
5. NameNode의 세부 정보
- MetaData가 담은 정보
1) 파일명
2) 디렉터리
3) 데이터 블록 크기
4) 소유자: 소속 그룹
5) 파일 속성
6) DataNode와 블록 대응 정보
- SecondaryNode
1) Hadoop의 NameNode가 고장났을 시, HDFS의 모든 정보가 날아갈 수 있음
2) 따라서, NameNode의 이중화를 통해 이 문제를 방지
6. DataNode의 역할
- 클라이언트가 HDFS에 저장하는 파일을 로컬디스크에 유지
- 파일은 두 종류가 있음.
- 첫번째는 실제 데이터가 저장되어 있는 raw data
- 두번째는 체크섬이나 파일 생성 일자와 같은 메타 데이터가 설정되어 있는 파일