serendipity
HBase 본문
HBase 란?
하둡 플랫폼을 위한 공개 비관계형 분산 데이터베이스

하둡의 분산 파일 시스템인 HDFS위에서 동작한다.
사용자는 Hbase나 HDFS에 직접 데이터를 저장하고 읽고 접근하는 것은 Hbase를 통한 임의접근을 이용할 수 있다.
분석 컬럼 기반 지향의 NoSQL DB으로,
* NoSQL DB는 데이터 키값 형식으로 단순하게 구조화 대신 고성능의 쓰기/읽기가 가능하도록 만든 DB
-> HBase 경우 특히 쓰기 성능에 최적화되어 있고 대용량 처리가 필요한 대규모 NoSQL 아키텍처 구성에 활용된다.
" 대규모 데이터 셋에서 실시간으로 읽고 쓰는 랜덤 액세스가 필요할 때 사용"
특징)
- 실제 인덱스가 없다 (row는 순차적으로 저장되고 각 로우별 칼럼도 순차적으로 저장)
- 선형 확장성이 있다. (노드를 추가하고 이를 기존 클러스터에 합쳐 리전 서버를 실행)
- 배치 처리 가능하다 (맵리듀스와의 통합으로 데이터의 완전한 병렬성과 분산 작업을 지원)
- 클러스터를 통해 데이터 복제를 제공한다.
- 읽기와 쓰기의 일관성을 제공한다.
Architecture


HMaster
: HRegion 서버를 관리하고 메타정보를 관리 / Fail & Over 관리 / Region들의 로드밸런싱 수행
관리 기능 : 테이블 생성 삭제 업데이트 , 클러스터에 있는 모든 리전 서버들을 모니터링 (주키퍼 이용)
HRegion
: Htable 크기에 따라 자동으로 수평 분할 발생할 때 분할된 블록을 HRegin 단위로 지정
HRegionServer
: 클라이언트와 통신을 하고 데이터 관련 연산을 관리
분산 노드별 HRegionServer가 구성되며, 하나의 HRegionServer에는 다수 HRegion이 생성되어 HRegion을 관리
HTable
: 칼럼 기반 데이터 구조를 정의한 테이블 (로우키와 칼럼패밀리로 구성)
*칼럼 패밀리 : 칼럼들의 그룹을 묶음
로우키 : 테이블의 row를 식별해 접근

데이터를 처음 저장하면 Memstore에 저장되고 이후 Hfile에 블록으로 저장된 후 메모리는 Flush된다.
Store
: 하나의 Store에는 칼럼 패밀리가 저장 및 관리 (Memostore & Hfile 로 구성)
Memstore
: Store 내 데이터를 인메모리에 저장 및 관리하는 데이터 캐시 영역
하나의 컬럼패밀리 당 하나의 Memstore가 존재하고, key/value 데이터를 정렬해 저장해서 그대로 Hfile에 저장
HFile
: Store 내의 데이터를 스토리지에 저장 및 관리하는 영구 저장 영역으로 Key & Values 형태로 저장
장점)
1) 대용량의 데이터를 안정적으로 다루는 데 효과적이다
- 중앙의 전체 분산 시스템을 통제하는 마스터를 두고,
전체 데이터의 일관성을 관리해 복제 데이터 사이의 일관성을 보장한다.
2) 대량의 데이터 분석 처리 지원에 적합하다.
- HDFS , MapReduce 등과 함께 사용하기에 최적화되어 있다.
3) Region 서버를 추가해서 확장 및 성능을 유지할 수 있다.
단점)
1) 특정 Region 서버에 특정 Table의 region이 집중되기 쉬워서 성능저하로 이어질 수 있다.
2) 클러스터 규모나 기본 스펙차이로 인해 적절한 세팅 적용이 힘들 수 있다.
'Study > Big Data' 카테고리의 다른 글
MapReduce 맵리듀스 (0) | 2022.01.26 |
---|---|
Zookeeper 주키퍼 (0) | 2022.01.26 |
Kafka 카프카 (0) | 2022.01.25 |
Flume 플럼 (0) | 2022.01.25 |
하둡 Ecosystem (0) | 2022.01.10 |