HBase

Think_Positively·2021년 4월 27일
0

HBase

아파치 HBase는 Hadoop을 위한 공개 NoSQL 분산 데이터 베이스이다. 아파치 소프트웨어 재단에서 아파치 하둡 프로젝트 일부로서 개발되었으며 하둡의 분산 파일 시스템인 HDFS위에서 동작한다. 대량의 흩어져 있는 데이터 저장을 위해 falut-tolerent 방법을 제공하는 구글의 BigTable과 비슷한 기능을 한다.

HBase 아키텍처

주요 구성 요소설명
HTable칼럼 기반 데이터 구조로 정의한 테이블로서, 공통점이 있는 컬럼들의 그룹을 묶은 패밀리테이블의 로우를 식별해서 접근하기 위한 로우키로 구성.
HMasterHRegion 서버를 관리하며, HRegion들이 속한 서버의 메타 정보 관리
HRegionServer분산 노드별 HRegionServer가 구성되며, 하나의 HRegionServer에는 다수의 HRegion이 생성되며 HRegion을 관리
HRegionHTable의 크기에 따라 자동으로 수평 분할이 발생하고, 이때 분할된 블록을 HRegion 단위로 지정
Store하나의 Store에는 칼럼 패밀리가 저장 및 관리되며, MemStore와 HFile로 구성
MemStoreStore 내의 데이터를 인메모리에 저장 및 관리하는 데이터 캐시 영역
HFileStore 내의 데이터를 스토리지에 저장 및 관리하는 영구 저장 영역

HBase에 데이터 저장 과정

1) 주키퍼를 통해 HTable의 기본 정보와 해당 HRegion의 위치 정보를 알아낸다.
2) 해당 정보를 기반으로 클라이언트가 직접 HRegionServer로 연결되어 MemStore에 데이터 저장
3) MemStore에 저장된 데이터는 특정 시점이 되면 HFile로 HDFS에 플러시 된다.

HBase에서 데이터 읽는 과정

1) 주키퍼를 통해 로우키(RowKey)에 해당하는 데이터의 위치 정보를 알아낸다.
2) 해당 HRegionServer의 MemStore에서 데이터를 가져옴으로써 디스크 I/O 최소화, 빠른응답속도
3)만일 데이터가 MemStore에서 플러시되어 존재히자 않으면 HFile 영역에서 데이터를 찾는다

* 3)과정에서 HBase와 HDFS 사이의 모든 데이터 스트림 라인들은 항상 열려 있으므로 레이턴시가 발생하지 않는다.

Reference

https://ko.wikipedia.org/wiki/%EC%95%84%ED%8C%8C%EC%B9%98_HBase - 아파치 HBase
실무로 배우는 빅데이터 기술 - 김강원 지음/위키북스

profile
데이터 엔지니어를 꿈꾸며

0개의 댓글