HDFS 소개
HDFS(Hadoop Distributed File System)는 수십 테라바이트 또는 페타바이트 이상의 대용량 파일을 분산된 서버에 저장하고 많은 클라이언트가 저장된 데이터를 빠르게 처리할 수 있게 설계된 파일 시스템이다. HDFS는 내결함성이 우수하고 저가의 하드웨어에 배포 할 수 있도록 설계되어 있다. 또한 POSIX 요구사항을 수용하여 파일 시스템 데이터에 스트리밍 액세스 할 수 있다.
HDFS에 저장된 데이터는 물리적으로 분산되어 있지만(서로 다른 여러 대의 서버에 저장되어 있음) 분산된 서버의 로컬 디스크에서 파일의 읽기, 저장과 같은 제어는 HDFS에서 제공하는 API를 이용해 처리된다.
HDFS는 다음과 같은 목표로 설계 되었다.
Hardware Failure (하드웨어 장애) : 하드웨어 고장은 언제나 발생 될 수 있다. HDFS 인스턴스 서버 시스템, 파일 시스템, 데이터의 저장 부분은 수백 또는 수천대로 구성 될 수 있다. 각 구성 요소가 장애 발생 시 HDFS으 일부 요소가 작동하지 않을 수 있기 때문에 오류로부터 신속하게 자동 복구를 감지하는 것이 HDFS의 목표이다.
Streaming Data Access (스트리밍 데이터 접근) : HDFS에 저장된 데이터 세트에 대해 스트리밍 액세스가 가능해야 한다. HDFS는 사용자가 대화식으로 사용보다는 일괄처리에 적합하도록 설계되어 있고 낮은 데이터 접근 지연 보다 높은 데이터 처리량에 중점을 두고 있다. POSIX의 요구 사항 도입은 처리 속도를 높이기 위해 사용되었다.
Large Data Sets(대용량 데이터 세트) : HDFS에서 일반적인 파일의 크기가 기가 바이트에서 테라바이트이다. HDFS는 큰 파일을 지원하도록 조정되어 있다. 하나의 클러스터에서 수 백대의 노드를 지원할 수 있어야 한다. 또한 하나의 인스턴스에서 수 백만개 이상의 파일을 지원한다.
Simple Coherency Model (간단한 일관성 모델) : HDFS 파일은 한 번 만들면(write)면) 수정 할 수 없으며 읽기만 가능하여 일관성을 유지한다. 일관성 문제를 단순화 하여 높은 처리량을 제공한다. 향후 버전에는 저장된 파일에 쓰기 지원계획이 있다.
Moving Computation is Cheaper than Moving Data : HDFS는 응용프로그램의 계산요청을 실행되는 곳 근처의 데이터를 계산하여 네트워크 혼잡을 줄이고 시스템의 전반적인 처리량을 증가 시킨다.
Portability Across Heterogeneous Hardware and Software Platforms (이기종 하드웨어 및 소프트웨어 플랫폼 이식성) : HDFS는 한 플랫폼에서 다른 플랫폼으로 쉽게 이식 할 수 있도록 설계 되었다.
[참고자료]
http://hadoop.apache.org/docs/stable/hdfs_design.html#Snapshots
2013-10-22 / 강성욱 / http://sqlmvp.kr
'SW Engineering > Hadoop' 카테고리의 다른 글
네임노드와 데이터노드 (0) | 2015.07.22 |
---|---|
HDFS 블록 파일 시스템 (0) | 2015.07.22 |
Hadoop Echosystem (0) | 2015.07.22 |
Hadoop 용어 (0) | 2015.07.22 |
Hadoop? (0) | 2015.07.22 |