Hadoop Distributed File System의 약자
- 플랫폼에 구애받지 않고 장애 복구성을 갖는 분산 파일 시스템을 목표로 한다.
- 본질은 파일시스템이란 것. 특정한 설계를 갖는 파일시스템
- 실시간 처리보다는 배치처리를 위해 설계되었다. 따라서 빠른 데이터 응답시간이 필요한 작업에는 적합하지 않음.
- 네임노드가 단일 실패 지점(SPOF)이기 때문에 네임노드 관리가 중요하다.
- 서버와 클라이언트 통신간에 RPC(Remote Procedure Call)을 이용한다.
다음의 특징이 있다.
블록 단위 저장
- HDFS는 데이터를 블록 단위로 나누어서 저장함. 블록사이즈보다 작은 파일은 기존 파일의 사이즈로 저장하고, 블록 사이즈보다 큰 크기의 데이터파일은 블록단위로 나눠서 저장한다.
- 블록단위가 256MB면 1G파일은 4개 블록으로 나누어 저장되고, 10MB면 하나의 블록에 저장됨.
블록 복제를 이용한 장애 복구
- HDFS는 장애 복구를 위해 각 블록을 복제해 저장한다. 블록의 기본 복제 단위는 3임. 하나의 블록은 3개의 블록으로 복제되고, 다른 IDC의 서버로 복제되어 저장된다. 블록에 문제가 생기면 복제한 다른 블록을 이용해 데이터를 복구한다.
- v2까지만 해도 1G를 저장하려면 3G가 필요했지만, 하둡 v3에 이레이저코딩이 도입되며 1.5G만으로도 장애 복구가 가능하게 됨. (패리티비트를 이용함)
읽기 중심
- HDFS는 한번쓰여진 데이터가 여러번 읽히는 것을 목적으로 한다. 따라서 파일의 수정은 지원하지 않는다.
- 파일의 수정을 제한함으로써 동작을 단순화하고 데이터를 읽을 때 속도를 높일 수 있다.
데이터 지역성