Practice makes perfect

[BIGDATA Platform] 빅데이터 실시간 적재 기술 : HBase 본문

빅데이터/BIGDATA Platform

[BIGDATA Platform] 빅데이터 실시간 적재 기술 : HBase

kerpect 2020. 6. 12. 20:37

HBase란?

: 아파치 HBase(Apache HBase)는 하둡 플랫폼을 위한 공개 비관계형 분산 데이터 베이스이다. 구글의 빅테이(BigTable)을 본보기로 삼았으며 자바로 쓰여졌습니다. 아파치 소프트웨어 재단의 아파치 하둡 프로젝트 일부로서 개발되었으며 하둡의 분산 파일 시스템인 HDFS위에서 동작을 합니다.

 

 

                                   HBase 홈페이지 : hbase.apache.org/

 

 

HBase의 특징

 

1) 하둡의 HDFS를 저장소로 사용하는 컬럼 기반 지향의 NoSQL 데이터베이스입니다.

 - NoSQL DB는 데이터를 키/값(key/value) 형식으로 단순하게 구조화하는 

   대신 고성능의 쓰기/읽기가 가능하도록 만든 데이터베이스 (핵심포인트) – 실시간성의 처리 최적화

-  HBase의 경우 특히 쓰기 성능에 좀 더 최적화되어 있으며, 대용량 처리가 

   필요한 대규모 NoSQL 아키텍처 구성이 필요할 때 자주 사용.

 

2) 논리적 관점에서 로우키와 컬럼패밀리, 컬럼 퀄러파이어의 중첩 맵 구조로 저장합니다.

- 컬럼패밀리 : 컬럼과 값의 집합을 선능 상의 이유로 물리적으로 값을 장소에 배치하는 것을 의미합니다. 

- 컬럼퀄러파이어 : 데이터를 인덱스를 제공하기 위해 컬럼 패밀리에 추가된 것입니다.  

 

3) 물리적 관점에서는 컬럼 패밀리 단위로 생성되는 HFile 이라는 파일에 저장합니다.

 

- 중간 매개체적 역할을 하는 것이 HBase 입니다. 직접적으로 memory 를 이용해서 수행할 수 있도록 되어있습니다. 최종적으로 hdfs에 적재되도록 구성되어 있으며 HRegion 서버를 통해서 가능하게 합니다.

 

 

 

HBase 아키텍처

 

※ 주키퍼(zookeeper)의 역할

 

1) 클라이언트가 region에 통신하려면 zookeeper을 통해야 합니다.

2) 클러스터에 있는 모든 RegionServer 들을 (주키퍼를 이용해서) 모니터링 합니다.

3) 클라이언트와 HMaster와의 연동을 도와줍니다.

4) 클러스터를 구성하는 서버들의 상태를 관리를 합니다.

5) 클러스터간의 정보공유를 위한 저장소 역할을 합니다.  

 

HMaster – HRegion 서버를 관리하며, HRegion 서버의 메타 정보를 관리합니다. 관리 기능 - 테이블의 생성, 삭제, 업데이트,  클러스터에 있는 모든 리전 서버들을 (주키퍼를 이용해서) 모니터링

 

HRegionServer - 분산 노드별 HRegionServer가 구성되며 하나의 HRegionServer에는 다수의 HRegion이 생성되어

HRegion을 관리합니다. 또한 클라이언트와 틍신을 하고 데이터 관련 연산을 관리합니다.

 

HRegion – Htable의 크기에 따라 자동으로 수평 분할이 발생하고, 이때 분할된 블록을 HRegion 단위로 지정

 

HTable – 칼럼 기반 데이터 구조를 정의한 테이블로서, 공통점이 있는 칼럼들의 그룹을 묶은 칼럼 패밀리와 테이블의 로우를 식별해서 접근하기 위한 로우키로 구성합니다.

 

Store - 하나의 Store에는 칼럼 패밀리가 저장 및 관리되며, MemStore HFile로 구성되어 있습니다.

 

MemStore – Store 내의 데이터를 인메모리에 저장 및 관리하는 데이터 캐시 영역입니다. Key/Value 데이터를 정렬해서 저장하고, 이 데이터를 그대로 HFile에 저장합니다. 하나의 컬럼패밀리당 하나의 MemStore가 존재합니다. 

 

HFile – Store 내의 데이터를 스토리지에 저장 및 관리하는 영구 저장 영역입니다. Key & Values 형태로 저장됩니다.