Introduction
HDFS(Hadoop Distributed File System)는 분산 파일시스템을 하드웨어에 저장하고, 읽는 역할을 한다. 여타 다른 분산 파일 시스템과 비슷해 보이지만, HDFS는 아래와 같은 특징을 가진다.
# Highly fault-tolerant
# Deployed on low-cost hardware
상기와 같은 두개의 장점으로 인해 HDFS는 대용량 데이터에 대해 저장 및 조회 용으로 적절하게 사용 가능하다.
HDFS의 Goal
Hardware Failure
Large Data Sets
HDFS에 저장되는 파일은 gigabyte ~ terabyte까지의 사이즈를 가진다. HDFS는 이러한 환경에서 단일 클러스터에서 high data bandwidth와 hundreds of nodes의 스케일링을 지원한다.
Simple Coherency Model
HDFS는 한번읽고 여러번 access하는 모델을 지향한다. 파일이 한번 create되고 written되면, 그 이후 update는 append 혹은 truncate만 가능하다. 이러한 특징을 통해 파일의 high throughput에 집중가능하다. MapReduce application이나 web crawler application이 이러한 파일 모델에 적합하다.
"Moving Computation is Cheaper than Moving Data"
HDFS는 한정적인 network에 대해 대용량 데이터을 효과적으로 처리하기 위해 만들어진 아키텍쳐이다. 물리적으로 멀리 떨어진 곳에 데이터를 분산 저장하기 보다는, 가까운 곳(closest rack) 에 저장함으로서 network를 효과적으로 사용한다.
Portability Across Heterogeneous Hardware and Software Platforms
HDFS는 한 플랫폼에서 다른 플랫폼으로 쉽게 옮길 수 있도록 설계되었다. 이를 통해 HDFS를 다양한 응용프로그램에 적합한 플랫폼으로 널리 채택 가능하다.
NameNode와 DataNode
DataNode : 실질적인 데이터를 분산 저장하는 node, Rack단위로 나뉘어진다.
NameNode : 각 분산된 데이터에 대해서 어느 DataNode에 저장되었는지 memory에 저장하고 있다.
그림. HDFS 아키텍쳐 구성도
1. Client는 특정 파일에 대해 NameNode에게 질의한다.
2. NameNode는 특정 파일의 block의 메타정보(파일명, 사용권한 등)를 메모리에서 가져와, client로 보낸다.
3. Client는 NameNode로 부터 받은 메타정보를 토대로 병렬로 직접 DataNode에서 file을 read한다.
End of Document.
'빅데이터' 카테고리의 다른 글
(번역)Netflix에서 데이터를 통해 유연하고, 안전한 클라우드 인프라로 활용하는 방법 (259) | 2019.03.22 |
---|---|
[Stream Process as a Platform] Netflix의 실시간 스트림 처리 플랫폼 Keystone 소개 (257) | 2019.01.10 |
모든 것을 측정하는 방법 - Bigdata시대에 부족한 data로 예측하기 (268) | 2018.12.16 |
JVM에서 MapReduce를 간편하게 쓸수 있는 오픈소스 라이브러리 Cascading (374) | 2018.11.19 |
Mongodb 기본 명령어 모음 (971) | 2018.10.30 |
가격 최적화를 위해 맞춤형 회귀 분석 모델을 활용한 airbnb (966) | 2018.09.19 |