HBase의 특징
- 구글 BigTable을 모델로 하여 개발된 컬럼 기반 분산 데이터베이스
- HBase 데이터 모델
- Table: Row들의 집합
- Row Key: 사전순으로 내림차순 정렬되기 때문에 Row key의 설계는 상당히 중요함
- Column Family (CF): 컬럼들의 그룹으로 모든 컬럼패밀리의 Member는 같은 접두사를 사용
- Cell: Row Key & Column & Version이 명시된 튜플
- Timestamp: 데이터가 쓰기될 때 같이 작성되는 것으로 각 값의 버전을 나타냄
HBase 구조
- HMaster: RS 모니터링, 배정, Failover, 메타데이터 관리, etc.
- Zookeeper: RS 상태 추적
- RegionServer (RS): Region 별 데이터 제공 및 관리
<HBase 구조와 도서관의 비교>
도서관 |
HBase |
전체 안내도 |
HMaster |
주제별 구역 |
RegionServer |
범위가 붙은 책장 |
Region |
책 일련 번호 |
Row Key |
책 본문 |
Column Family |
HBase HMaster
- HMaster
- Region 배치와 테이블의 생성/삭제 작업 처리 수행
- RegionServer의 복구 및 로드밸런싱에 관여하여 Region을 재할당
HBase Zookeeper
- 각 노드의 상태 정보를 Heartbeat 기반으로 추적하는 분산 코디네이터
- 메타(hbase:meta) 테이블의 위치를 관리(기존 -ROOT- 테이블 삭제, in 0.96)
- hbase:meta table (시스템 내 모든 RegionServer 정보를 포함)
- Key: [table], [region start key], [region id]
- Value: info:regioninfo (serialized HRegionInfo), info:server (RegionServer), info:serverstartcode (RS start-time)
HBase Region
- Region
- startKey와 endKey 사이의 모든 로우를 포함
- 하나의 RegionServer는 약 1,000 개 Region을 수용 가능
HBase RegionServer
- Block Cache: 읽기 캐시(LRU)
- WAL (Write Ahead Log)
- Regions
- Store: ColumnFamily (CF) 당 하나의 Store
- MemStore: 쓰기 캐시로 디스크에 쓰기 전에 정렬되며, CF 당 하나 존재
- StoreFiles (HFiles): HDFS에 저장됨
HBase HFile 구조
- HFile version 1
- HFile version 2 (0.92)
- 대량의 BloomFilter와 Block Index로
메모리 소비 증대와 느린 구동 시간을
해소하기 위함
- HFile version 3 (0.98)
- File block encryption, cell-level ACL, visibility label 등의 보안 향상과 cell tag 추가
- Tag는 압축, 암호화 등의 Cell에 대한 부가 정보를 가질 수 있음
'Development > Hadoop' 카테고리의 다른 글
HBase 공부 - Tuning, Monitoring (0) | 2019.01.24 |
---|---|
HBase 공부 - Scan, Filter (0) | 2019.01.24 |
하둡 공부 - Yarn Scheduler (0) | 2019.01.24 |
하둡 공부 - Apache Hadoop 3.0.0 (0) | 2019.01.24 |
하둡 공부 - 관련 프로젝트 (0) | 2019.01.24 |