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 Region & Server
Region은 테이블을 Start Row ~ End Row 까지 분할하고 묶은 것
Region Server는 이러한 Region들을 관리하는 서버를 말함.
- Start-up
- Hbase 시작
- Master -> AssignmentManager 호출
- hbase:meta에서 할당할 리전 있는지 찾아봄
- 리전 서버가 온라인이면 할당 유지
- 유효하지 않다면 LoadBalancerFactory 호출 -> 리전 서버에 리전 지정
- hbase:meta 갱신
- Failover
- 리전 서버가 다운되면 해당 리전들은 즉시 사용 불가능으로 변경
- 마스터는 리전 서버가 다운됨을 감지
- 리전 할당을 유효하지 않은 것으로 간주, Start-up 시퀸스와 같이 다시 할당.
- 내부 쿼리들은 재시도, 버리지 않음
- 새로운 리전 서버쪽으로 교체
'DATA SCIENCE' 카테고리의 다른 글
Data Engineer 로드맵 (-ing...) (0) | 2021.09.01 |
---|---|
Hadoop 이란? (0) | 2021.08.22 |
댓글