리카르돌 2012.07.26 17:35 전체공개

Hbase 리뷰

HBase 특성에 대한 기본적인 개념 리뷰 중..
1. HBASE 란? (
)<?-ml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
ü
구글 Bigtable을 모델로 하여 초기 모델 개발(2007년)
ü
Hadoop의 서브 프로젝트로 편입 (2008년)
ü
분산 컬럼 기반(distributed column oriented) 데이터베이스
ü
Bigtable은 1000개 이상의 Cluster node를 지원
ü
대용량 Read/Write 기능 지원, Fast Scans 지원
ü
HDFS 기반
위에 구현됨
ü
Zookeeper를 이용한 고 가용성
보장
Membership 정보저장, Dead Server 탐지, Master 선출 및 복구
2. HBASE 주요 용어
ü
Table
-
Row들의 집합 (Row Key가 있으며 다수의 column family로 구성)
-
Schema 정의서 Column Family 만 정의
ü
Row Key
-
임의의 Byte열로 사전순으로 내림차순 정렬
-
빈 Byte문자열은 테이블의 시작과 끝을 의미
ü
Column Family
-
Column들의 그룹으로 모든 컬럼패밀리의 Member는 같은 접두사를 사용
-
DB기술팀:김병수와 DB기술팀:이용석 은 DB기술팀이라는 컬럼 패밀리의 멤버컬럼
ü
Cell
-
ROW KEY&Column&Version이 명시된 튜플
-
값은 임의의 Byte열이며 Timestamp가 있음
3. HBASE Architecture
ü
Hbase Cluster Architecture
<?-ml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><v:shapetype id=_x0000_t75 stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype>
ü
HBase System components
ü
HBase Data Model
ü
HBase Data 분산 및 Lookup 방식
4. HBASE VS RDBMS 의 비교
HBase
RDBMS
컬럼 기반
로우 기반
동적 스키마(동적컬럼추가가능)
고정 스키마
get / put / scan 등등
SQL
대용량 테이블 용도
일반 테이블
MapRduce Join 활용
Join에 최적화 됨
Rowkey만 인덱스 지원
임의 컬럼에 대한 인덱스 지원
초당 수십만건 Read/Write
초당 수천건 Read/Write
최대 PB 저장 용량
최대 TB 급 저장 용량
프로젝트 진행중
인증/허가 수준의 보안기능제공
단일로우 트랜잭션 보장
다중 로우 트랜잭션 보장
5. HBase Table 구조 확인
ü
HBase의 column 은 미리 선언 되는 것이 아니고 Runtime시에 정의 된다.
ü
Timestamp는 descending 방식으로 저장되어 timestamp에 따라 컬럼은 time-version value 형태로
디스크 상에 저장된다. Time-version 된 value들의 그룹을 cell이라고 명칭함.
Columns 내부에 Dynamic하게 새로운 Entity 정의가 가능함
6. HBase Modeling Example
ü
1:M 구조의 Relationship
ü
M:M 구조의 Relationship
HBASE 를 활용 하기 위해서는
ü
RDBMS를 버리는 것이 아니라 서비스에 따른 적절한 솔루션 선택이 필요
ORACLE + MYSQL + HBASE + Mem Cache + NoSQL등 서비스/데이터에 따른 다양한 조합
ü
Hadoop, Zookeeper, 기타 오픈 소스 활용 능력이 안정적 서비스 운영의 필수 조건
기술력의 내재화 없이는 서비스 성공 불가함
ü
Data Architecture
보다
System&Application Architecture의 역량이 매우 중요
ü
Row Key 기반의 대량 데이터가 발생 가능한 서비스 모델
에 적합
서비스&데이터 모델이 Row Key 기반으로 단순해야 최적화 가능한 구조임
ü
HBASE의 안정성 확보 필요
HW
차원의 안정성 확보도 필요하지만 프로그램의
코드 레벨 수준에서 안정성 검증 필요
출처 : Gruter Technical Note
:
:
:
Ian Varley의 HBase Schema Design

0

0

댓글0

    댓글 더보기

    삭제 하시겠습니까? 취소 삭제

    로그인 하시겠습니까? 확인 취소

    댓글을 삭제 하시겠습니까? 확인 취소