HDFS(Hadoop Distributed File System)

HDFS 파일 시스템은 순수한 자바 파일시스템입니다. 이것은 여러 개의 머신에 걸쳐 큰 파일을 저장할 수 있습니다. (이상적인 파일 크기는 64MB이다.) 이것은 단일 호스트에서 RAID 스토리지를 걸치지 않고 안정성을 달성하고 있지만, 여러개의 호스트에 데이터를 복사하는 단점을 가지고 있습니다. 기본적인 복사본의 숫자는 3인데, 이는 HDFS 파일 시스템이 3개의 노드(2개는 같은 랙, 1개는 다른 랙)에 데이터를 저장하려고 하기 때문입니다. 파일 시스템은 데이터 노드들의 클러스터를 통해서 구축되며, 각각의 서버들은 데이터 블럭을 네트워크를 통해서 제공합니다. HDFS는 또한 웹 브라우저나 다른 클라이언트를 통해서 모든 컨텐츠에 대해 접근할 수 있도록 해서 HTTP 프로토콜을 통해서 데이터를 제공하기도 합니다. 데이터 노드들은 데이터의 재밸런싱 작업(복사본을 옮기거나 데이터의 복제를 위해)을 위해서 서로 이야기할 수 있습니다.

파일 시스템은 name-node라는 하나의 특별한 서버를 필요로 합니다. 이것이 HDFS 설치에 있어서 실패의 한 요소이며, 네임 노드가 다운되면 파일시스템 또한 꺼집니다. 이러한 사태를 줄이기 위해서 어떤 사이트들은 2차 네임 노드를 운영하기도 합니다. 많은 사이트들은 하나의 네임 노드를 이용하고 있습니다.  리플레이 프로세스는 큰 클러스터의 경우 30분 이상 소요되기도 합니다.

HDFS의 또다른 한계는 현존하는 운영체제에 직접 마운트할 수 없다는 것입니다. HDFS 파일 시스템을 통해서 테이터를 넣거나 꺼내는 작업을 수행할 때 별도의 작업이 필요하게 됩니다. Filesystem in Userspace 프로젝트가 리눅스나 유닉스 시스템에서 이러한 문제를 해결하기 위해서 개발 중에 있습니다.


HBase

HBase는 Hadoop 데이터베이스입니다. 이는 구글의 논문-Chang et al이 쓴 Bigtable: A Distributed Storeage System for Structured Data-에 따라에 따라 오픈소스, 분산, 컬럼기반의 저장 모델을 가지고 있습니다.  빅테이블Bigtable이 구글 파일 시스템에 영향을 받는 분산 데이터 스토리지이듯이, Hadoop과 HBase도 Google File System과 Bigtable와 비슷한 호환성을 제공합니다.

HBase의 목표는 수십억개의 행과 수백만개의 컬럼을 가진 매우 많은 테이블을 클러스터를 통해 호스팅하는 것입니다.
이 게시물을..