HDFS 블록 파일 시스템
HDFS(Hadoop Distributed File System)는 블록 구조 파일 시스템이다. HDFS에 저장하려는 파일은 특정 사이즈의 블록으로 나누어져 분산된 서버에 저장된다. (이때 저장되는 개별의 서버를 Data Node라고 한다.)
블록 사이즈는 기본적으로 64MB 또는 128MB이며 변경이 가능하다. (최대 512yottabyte)
HDFS는 블록을 저장할 때 기본적으로 3개의 블록 복제본을 생성하여 분산된 서버에 저장한다. 복제된 블록이 여러 서버에 저장되어 있기 때문에 특정 시스템에 장애가 발생하여도 데이터를 유지 할 수 있다.
블록의 사이즈를 너무 작거나 크게 하였을 경우에 블록 사이즈보다 작은 데이터가 저장 될 경우 무조건 해당 블록의 크기만큼 공간을 차지하는 것이 아닌 실제 데이터 크기에 맞게 블록에 저장 된다. 예를 들어 64MB 블록에 1KB의 데이터를 저장 할 경우 1KB의 디스크 공간을 차지한다.
하지만 이렇게 블록이 너무 작으면 메모리 형식으로 관리되는 파일 시스템 네임노드에서 작은 파일들을 관리하기 위한 메모리 사용량이 늘어난다. 메모리 사용량이 늘어나면 제한된 메모리에서 관리할 수 있는 블록이 줄어들어 많은 양의 데이터를 저장하지 못하게 된다.
스트리밍 데이터 접근이 용이하도록 디자인된 파일 구조에서 작은 파일을 처리할 경우 비효율적인 데이터 접근이 발생할 확률이 높다. HDFS 디자인이 순차적 데이터 액세스가 용이하도록 되어있어 랜덤 액세스의 경우 효율이 떨어질 수 있다.
[GFS vs HDFS]
[참고자료]
http://www.mplsvpn.info/2012/11/hadoop-architecture-hadoop-distributed.html
http://www.cs.rutgers.edu/~pxk/417/notes/16-dfs.html
2013-10-23 / 강성욱 / http://sqlmvp.kr
'SW Engineering > Hadoop' 카테고리의 다른 글
보조 네임노드 (0) | 2015.07.22 |
---|---|
네임노드와 데이터노드 (0) | 2015.07.22 |
HDFS 소개 (0) | 2015.07.22 |
Hadoop Echosystem (0) | 2015.07.22 |
Hadoop 용어 (0) | 2015.07.22 |