본문 바로가기
DATA SCIENCE

HBase ?

by 나른한 사람 2021. 8. 23.

HBase?

Apache Hbase는 확장(Scale-out) 가능하며, 분산될 수 있는 대용량 Database.
랜덤 액세스 및 실시간 읽기/쓰기를 지원하는 비관계형 데이터베이스임.
Hadoop Ecosystem의 일부로 HDFS에서 동작.
읽기/쓰기에 일관성 보장

HBase 테이블의 구조

  • HBase의 Table은 Row, Column, Column Family, Column Qualifier, Cell, Timestamp로 이루어져 있다.
  • Table: Row의 집합
  • Row: Row Key + Columns, Row Key 기준 알파벳순으로 정렬됨 (연관된 Row끼리 가깝게 배치하려면 Row Key 설계 중요)
  • Column: Column Family + Column Qualifier
  • Column Family: CF내의 멤버는 물리적으로 같은 공간에 저장(한꺼번에 접근 시 빠른 처리 가능), Column Family 멤버는 동적으로 추가 가능
  • Column Qualifier: 문자로 구분되며 가변적이고 Row마다 크기가 다를 수 있음
  • Cell: 각 Column의 값, timestamp 포함, 이전의 값을 두고 저장되며, 일정 기간 그 값을 유지함
  • Timestamp: 데이터가 기록될때 Region Server의 시간, 주어진 값의 Version 식별자로 쓰임

HBase 테이블 구조

HBase Region & Server

Region은 테이블을 Start Row ~ End Row 까지 분할하고 묶은 것

Region Server는 이러한 Region들을 관리하는 서버를 말함.

  • Start-up
    1. Hbase 시작
    2. Master -> AssignmentManager 호출
    3. hbase:meta에서 할당할 리전 있는지 찾아봄
    4. 리전 서버가 온라인이면 할당 유지
    5. 유효하지 않다면 LoadBalancerFactory 호출 -> 리전 서버에 리전 지정
    6. hbase:meta 갱신
  • Failover
    1. 리전 서버가 다운되면 해당 리전들은 즉시 사용 불가능으로 변경
    2. 마스터는 리전 서버가 다운됨을 감지
    3. 리전 할당을 유효하지 않은 것으로 간주, Start-up 시퀸스와 같이 다시 할당.
    4. 내부 쿼리들은 재시도, 버리지 않음
    5. 새로운 리전 서버쪽으로 교체

참고: [https://jdm.kr/blog/189]

'DATA SCIENCE' 카테고리의 다른 글

Data Engineer 로드맵 (-ing...)  (0) 2021.09.01
Hadoop 이란?  (0) 2021.08.22

댓글