Hardware Failure
분산 서버로 구성된 HDFS에는 여러 장애가 나타날 수 있음
하드웨어, 네트워크, 디스크 등
HDFS는 분산 서버 사이에서 주기적인 health check를 통해 이런 장애를 빠르게 감지하고 대처할 수 있게 설계됨
Streaming Data Access
HDFS는 클라이언트의 요청을 빠르게 처리하는 것보다 동일한 시간 내에 더 많은 데이터를 처리하는 것을 목표로 한다.
따라서, Random Access를 고려하지 않으며, Batch처리에 더 맞게 디자인 되어 있음
구체적으로는 Random Access대신 Streaming방식으로 데이터에 접근함
Large Data Sets
HDFS는 하나의 파일이 GB ~ TB 수준의 데이터 크기로 저장될 수 있게 설계됨
높은 데이터 전송 대역폭(bandwidth)를 지원하며, 하나의 클러스터에서 수백대의 노드를 구성할 수 있음
하나의 인스턴스에는 수백 만개 이상의 파일을 지원
Simple Coherency Model
데이터 무결성이란 데이터의 입력이나 변경을 제한해서 데이터의 안정성을 깨는 동작을 막는 것을 의미
HDFS는 write-once-read-many access model을 따름
즉, HDFS에 한번 저장된 데이터는 수정할 수 없고, 읽기만 가능하게 하여 무결성을 지킴
데이터 수정은 불가능 하지만 파일의 이동, 삭제, 복사 및 append는 지원
이러한 방식은 데이터 접근에 대한 높은 throughput을 가능하게 함. 특히 MapReduce에서 큰 장점을 발휘
Moving Computation is Cheaper than Moving Data
데이터를 이용해 computing processing을 한다면, 데이터가 processor와 가까울 수록 효율이 좋음
즉, Network 혼잡을 줄이고 시스템 전체의 throughput을 높임
HDFS는 이것을 위해 Data를 이동시키는 것이 아닌, computing 자원을 data가 있는 위치로 이동시키는 것을 선택함.
Portability Across Heterogeneous Hardware and Software Platforms
HDFS는 쉽게 HW/SW 플랫폼을 옮길 수 있도록 디자인 됨
인텔, AMD 칩이 설치된 하드웨어에서 동일하게 동작
HDFS 코드가 Java로 구현되어 있어 OS와 독립적으로 동작