'Development/Hadoop'에 해당되는 글 17건

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에 대한 부가 정보를 가질 수 있음

 

 

 

 

 

참조: HBase: The Definitive Guide

'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
블로그 이미지

나뷜나뷜

,