HDFS (Hadoop Distributed File System)
하둡 분산 파일 시스템으로, 대용량의 파일을 분산된 서버에 저장하고 데이터를 빠르게 처리할 수 있도록 설계 되었다.
HDFS의 특징
1. 대용량 파일
하나의 파일에 대해 기가, 테라 단위의 크기까지 저장이 가능하다.
2. 스트리밍 방식의 데이터 접근
클라이언트의 요청을 빠른 시간에 처리하는 것 보다 동일한 시간 내 많은 데이터를 처리하도록 설계되었다.
3. 범용 하드웨어 사용
신뢰도 높은 고가의 하드웨어가 아닌 범용의 하드웨어를 사용할 수 있다. 장애가 발생하는 경우 장애 복구 기능을 통해 작업을 실행할 수 있다.
4. 데이터 수정
데이터를 한 번 쓰고 끝나거나 파일의 끝에 데이터를 덧붙이는 것은 가능하지만 파일 중간의 데이터를 수정하는 것은 허용하지 않는다.
HDFS의 기본 개념
1. 블록
- 파일 시스템에서 사용하는 블록과 같은 개념으로 한 번에 읽고 쓸 수 있는 데이터의 최대량
- 일반적으로 사용하는 파일 시스템의 블록 크기는 수 KB 정도이지만, 하둡에서의 블록 크기는 V2기준 128MB
큰 데이터 블록을 사용하는 이유 : 탐색 비용을 줄이기 위해
블록의 크기가 크면 블록의 시작점을 탐색하는 데 걸리는 시간을 줄여 데이터 전송에 더 많은 시간을 사용할 수 있기 때문에 시간적으로 이득을 볼 수 있다.
2. 데이터 복제
- Hadoop에서는 내고장성과 가용성을 위해 데이터를 복제하여 저장
- 블록 손상과 노드의 장애에 대처하기 위해 각 블록을 서로 다른 노드에 복제하여 저장
3. 네임 노드와 데이터 노드
네임 노드 : 파일 시스템의 네임스페이스를 관리하며 파일, 디렉토리에 대한 메타데이터를 유지한다.
데이터 노드 : 블록을 저장하고, 저장하고 있는 데이터의 정보를 네임노드가 알 수 있게 주기적으로 보고한다.
HDFS의 파일 시스템에 접근하기 위해서는 내부적으로 네임노드에 먼저 접근하여 데이터의 위치에 어디에 있는지 파악한 후 데이터 노드로 접근하여 데이터를 가지고 오게 된다.
'AI & 빅데이터' 카테고리의 다른 글
[텍스트 마이닝] 카운트 기반의 문서 표현이란? (1) | 2024.02.03 |
---|---|
[빅데이터 시스템 구축] Hadoop, Hadoop Ecosystem (0) | 2022.06.16 |
Anaconda 명령어 (0) | 2022.04.06 |
Visual Studio에 Docker 연동하기 (0) | 2022.03.27 |
Docker 명령어 정리 (0) | 2022.03.27 |