SlideShare une entreprise Scribd logo
1  sur  12
Télécharger pour lire hors ligne
HBase 훑어보기
최범균(2013-12-18)
HBase
● Hadoop 기반의 NoSQL
○ 컬럼 패밀리 + 스키마 없음
○ 조인, 인덱스 없음
○ 행 단위 조작에 대해서만 Atomic
■ 다중 행에 대한 트랜잭션 지원 없음

● 분산 데이터 저장소
○ 데이터를 다수 서버에 분산 보관
○ 자주 접근되는 데이터를 메모리에 캐시

● 데이터 영속성
○ 물리적 저장소로 HDFS를 사용
데이터 모델
1개 테이블의 구조

rowkey

column qualifier

info 컬럼패밀리

bkchoi

email:
bkchoi@scgs.co.kr

madvirus

name: 최
범균

email:
madvirus@madvirus.net

zoro

address 컬럼패밀리

realname:
돈 디에고 데 라 베가

addr2:
상도동 ...

addr1:
서울시 관악구

cell

addr1:
서울시 동작구

zipcode
신사동 ….
데이터 모델
● 테이블은 n개의 컬럼 패밀리를 가짐
● 1개의 행 = rowkey + 컬럼패밀리들
○ rowkey를 기준으로 정렬: 유일한 인덱스
● 컬럼 패밀리
○ 임의의 (column qualifer, 값) 쌍들로 구성
● column qualifer의 값은 n개의 버전을 가짐
○ 기본 설정은 3개의 마지막 버전 보관
○ 버전 값은 시간(timestamp)을 이용
● 단일 셀 식별
○ <rowkey, column family, column qualifer, version>
● rowkey, column qualifier, 셀 값의 타입
○ byte 배열
데이터 모델 예시: 채팅메시지
rowkey: 대화ID-timestamp(역순)

message 컬럼 패밀리

location 컬럼 패밀리

1010101-0000124345456

senderId:
kame

senderName:
출판사

message:
안녕하세요

1010101-0000124345477

senderId:
bkchoi

senderName:
최범균

message:
네~

coord:

locname:
파주
데이터 접근 오퍼레이션
● get: 특정 rowkey에 해당하는 row 접근
● put: 특정 rowkey에 해당하는 데이터를 추가
또는 변경
● delete: 특정 rowkey에 해당하는 row 삭제
● scan: 특정 범위의 rowkey에 속하는 row 목록
접근
● increment: 특정 셀의 값을 증가
● CAS(compare and set): 특정 셀의 값을 비교
후 설정
리전Region
● 테이블의 부분 집합을 관리
○ 각 리전은 특정 범위의 rowkey 데이터를 다룸
■ 예) 리전1: [~1000], 리전2: [1001~]
○ 리전 서버마다 n개의 리전을 제공

● 일정 크기 이상 커지면 분리
리전서버
테이블A
의
리전1

테이블B
의
리전2

리전서버
테이블A
의
리전2

테이블B
의
리전1

테이블B
의
리전3
리전서버, 마스터서버, 주키퍼
테이블 생성, 삭제, 수정 요청

리전 위치 검색
클라이언트

주키퍼 클러스터

마스터서버

DDL 처리
리전 할당 관
리

리전 분리 정보 제공

데이터 송수신

리전서버

리전서버

HDFS 데이터노드

HDFS 데이터노드
리전의 구성
변경 내역 로그
리전서버
LRU 캐시.
HFile의 블록을 캐
시

블록캐시 (BlockCache)
리전 (특정 테이블의 rowkey 1000~ 범위)

데이터를 Put 하면 일단
멤스토어에 보관.
멤스토어가 가득 차면
HFile 형식으로 파일로
Flush하고 멤스토어를
비움.

스토어

스토어(컬럼패밀리 당 1개)

리전

HLog
(WAL)

멤스토어
(MemStore)

HFile

HFile

HFile

<rowkey, cf, c, ver, 값>
목록을 가짐.
파일

파일

파일
파일 시스템(HDFS)

파일
HFile Compaction
● Minor Compaction
○ 주어진 기준에 따라 작은 크기의 HFile들을 묶어서 한
개의 HFile로 만듦
■ 기준: 스토어의 최대/최소 HFile 개수, 최소 크기,
최대 크기 등을 고려해서 합칠 파일 선택
○ 삭제된 행, 오래된 버전도 그대로 복사

● Major Compaction
○ 스토어의 모든 HFile을 합쳐서 1개의 HFile 생성
○ 삭제된 행, 오래된 버전은 삭제 됨
컬럼 패밀리 별 설정
● HFile 블록 크기: 기본 64KB
○ 블록 크기 작으면 랜덤 접근, 크면 순차 스캔 유리
● 블룸 필터
○ 검색 데이터가 해당 블록에 존재하지 않는지에 대한
데이터를 추가할 지 여부 (기본은 추가하지 않음)
● TTL: 데이터 수명 지정 (초 단위, 기본 값은 TTL 없음)
○ major compaction에서 TTL 보다 오래된 버전을 삭제
● 압축:
○ 블록 데이터를 디스크에 저장할 때 압축처리
● 셀 버전 개수: 기본 3개
○ 개수 지정 가능 (예, 1개)
○ 최소 보관 개수 지정 가능
■ 이 경우 TTL 보다 오래된 버전도 최소 1개 남음
기타
● 클러스터 계획/운영
● 백업/클러스터 간 복제
● HBase MR 이용

Contenu connexe

Tendances

about hadoop yes
about hadoop yesabout hadoop yes
about hadoop yesEunsil Yoon
 
Hadoop설명
Hadoop설명Hadoop설명
Hadoop설명Ji Hoon Lee
 
Hadoop 제주대
Hadoop 제주대Hadoop 제주대
Hadoop 제주대DaeHeon Oh
 
Distributed Programming Framework, hadoop
Distributed Programming Framework, hadoopDistributed Programming Framework, hadoop
Distributed Programming Framework, hadoopLGU+
 
Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)
Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)
Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)Matthew (정재화)
 
Hadoop Introduction (1.0)
Hadoop Introduction (1.0)Hadoop Introduction (1.0)
Hadoop Introduction (1.0)Keeyong Han
 
하둡 좋은약이지만 만병통치약은 아니다
하둡 좋은약이지만 만병통치약은 아니다하둡 좋은약이지만 만병통치약은 아니다
하둡 좋은약이지만 만병통치약은 아니다민철 정민철
 
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for HadoopSeungYong Baek
 
서울 하둡 사용자 모임 발표자료
서울 하둡 사용자 모임 발표자료서울 하둡 사용자 모임 발표자료
서울 하둡 사용자 모임 발표자료Teddy Choi
 
Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013Gruter
 
하둡 타입과 포맷
하둡 타입과 포맷하둡 타입과 포맷
하둡 타입과 포맷진호 박
 
Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoMatthew (정재화)
 
빅데이터 구축 사례
빅데이터 구축 사례빅데이터 구축 사례
빅데이터 구축 사례Taehyeon Oh
 
하둡완벽가이드 Ch9
하둡완벽가이드 Ch9하둡완벽가이드 Ch9
하둡완벽가이드 Ch9HyeonSeok Choi
 

Tendances (20)

about hadoop yes
about hadoop yesabout hadoop yes
about hadoop yes
 
Hadoop설명
Hadoop설명Hadoop설명
Hadoop설명
 
Hadoop 제주대
Hadoop 제주대Hadoop 제주대
Hadoop 제주대
 
Distributed Programming Framework, hadoop
Distributed Programming Framework, hadoopDistributed Programming Framework, hadoop
Distributed Programming Framework, hadoop
 
Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)
Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)
Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)
 
Hadoop Introduction (1.0)
Hadoop Introduction (1.0)Hadoop Introduction (1.0)
Hadoop Introduction (1.0)
 
Apache hive
Apache hiveApache hive
Apache hive
 
하둡 좋은약이지만 만병통치약은 아니다
하둡 좋은약이지만 만병통치약은 아니다하둡 좋은약이지만 만병통치약은 아니다
하둡 좋은약이지만 만병통치약은 아니다
 
HDFS Overview
HDFS OverviewHDFS Overview
HDFS Overview
 
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
 
서울 하둡 사용자 모임 발표자료
서울 하둡 사용자 모임 발표자료서울 하둡 사용자 모임 발표자료
서울 하둡 사용자 모임 발표자료
 
Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013
 
하둡 타입과 포맷
하둡 타입과 포맷하둡 타입과 포맷
하둡 타입과 포맷
 
하둡관리
하둡관리하둡관리
하둡관리
 
Hadoop overview
Hadoop overviewHadoop overview
Hadoop overview
 
Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with Tajo
 
Hive begins
Hive beginsHive begins
Hive begins
 
Hadoop administration
Hadoop administrationHadoop administration
Hadoop administration
 
빅데이터 구축 사례
빅데이터 구축 사례빅데이터 구축 사례
빅데이터 구축 사례
 
하둡완벽가이드 Ch9
하둡완벽가이드 Ch9하둡완벽가이드 Ch9
하둡완벽가이드 Ch9
 

Similaire à HBase 훑어보기

Apache hbase overview (20160427)
Apache hbase overview (20160427)Apache hbase overview (20160427)
Apache hbase overview (20160427)Steve Min
 
log-monitoring-architecture.pdf
log-monitoring-architecture.pdflog-monitoring-architecture.pdf
log-monitoring-architecture.pdfSungkyun Kim
 
[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)NAVER D2
 
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'sung ki choi
 
Data Structures
Data StructuresData Structures
Data Structuresskku_npc
 
Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoGruter
 
amugona study 3rd
amugona study 3rdamugona study 3rd
amugona study 3rdwho7117
 
Node.js DBMS short summary
Node.js DBMS short summaryNode.js DBMS short summary
Node.js DBMS short summaryHoChul Shin
 
No sql 이해 및 활용 공개용
No sql 이해 및 활용 공개용No sql 이해 및 활용 공개용
No sql 이해 및 활용 공개용YOUNGGYU CHUN
 
빅데이터, big data
빅데이터, big data빅데이터, big data
빅데이터, big dataH K Yoon
 
성공적인웹프로그래밍
성공적인웹프로그래밍성공적인웹프로그래밍
성공적인웹프로그래밍dgmong
 
Hadoop Overview 1
Hadoop Overview 1Hadoop Overview 1
Hadoop Overview 1Kay Kim
 
Object storage의 이해와 활용
Object storage의 이해와 활용Object storage의 이해와 활용
Object storage의 이해와 활용Seoro Kim
 
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017Amazon Web Services Korea
 
2017 AWS DB Day | Amazon Aurora 자세히 살펴보기
2017 AWS DB Day | Amazon Aurora 자세히 살펴보기2017 AWS DB Day | Amazon Aurora 자세히 살펴보기
2017 AWS DB Day | Amazon Aurora 자세히 살펴보기Amazon Web Services Korea
 
Memcached의 확장성 개선
Memcached의 확장성 개선Memcached의 확장성 개선
Memcached의 확장성 개선NAVER D2
 
새로쓴 대용량 데이터베이스 솔루션 1분리형일체형테이블
새로쓴 대용량 데이터베이스 솔루션 1분리형일체형테이블새로쓴 대용량 데이터베이스 솔루션 1분리형일체형테이블
새로쓴 대용량 데이터베이스 솔루션 1분리형일체형테이블Gordon Lee
 

Similaire à HBase 훑어보기 (20)

Apache hbase overview (20160427)
Apache hbase overview (20160427)Apache hbase overview (20160427)
Apache hbase overview (20160427)
 
log-monitoring-architecture.pdf
log-monitoring-architecture.pdflog-monitoring-architecture.pdf
log-monitoring-architecture.pdf
 
[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)
 
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
 
Data Structures
Data StructuresData Structures
Data Structures
 
Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with Tajo
 
amugona study 3rd
amugona study 3rdamugona study 3rd
amugona study 3rd
 
Node.js DBMS short summary
Node.js DBMS short summaryNode.js DBMS short summary
Node.js DBMS short summary
 
SPARK SQL
SPARK SQLSPARK SQL
SPARK SQL
 
No sql 이해 및 활용 공개용
No sql 이해 및 활용 공개용No sql 이해 및 활용 공개용
No sql 이해 및 활용 공개용
 
빅데이터, big data
빅데이터, big data빅데이터, big data
빅데이터, big data
 
10장
10장10장
10장
 
성공적인웹프로그래밍
성공적인웹프로그래밍성공적인웹프로그래밍
성공적인웹프로그래밍
 
Hadoop Overview 1
Hadoop Overview 1Hadoop Overview 1
Hadoop Overview 1
 
Object storage의 이해와 활용
Object storage의 이해와 활용Object storage의 이해와 활용
Object storage의 이해와 활용
 
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017
 
2017 AWS DB Day | Amazon Aurora 자세히 살펴보기
2017 AWS DB Day | Amazon Aurora 자세히 살펴보기2017 AWS DB Day | Amazon Aurora 자세히 살펴보기
2017 AWS DB Day | Amazon Aurora 자세히 살펴보기
 
컴퓨터개론08
컴퓨터개론08컴퓨터개론08
컴퓨터개론08
 
Memcached의 확장성 개선
Memcached의 확장성 개선Memcached의 확장성 개선
Memcached의 확장성 개선
 
새로쓴 대용량 데이터베이스 솔루션 1분리형일체형테이블
새로쓴 대용량 데이터베이스 솔루션 1분리형일체형테이블새로쓴 대용량 데이터베이스 솔루션 1분리형일체형테이블
새로쓴 대용량 데이터베이스 솔루션 1분리형일체형테이블
 

Plus de beom kyun choi

옛날 웹 개발자가 잠깐 맛본 Vue.js 소개
옛날 웹 개발자가 잠깐 맛본 Vue.js 소개옛날 웹 개발자가 잠깐 맛본 Vue.js 소개
옛날 웹 개발자가 잠깐 맛본 Vue.js 소개beom kyun choi
 
DDD로 복잡함 다루기
DDD로 복잡함 다루기DDD로 복잡함 다루기
DDD로 복잡함 다루기beom kyun choi
 
TDD 발담그기 @ 공감세미나
TDD 발담그기 @ 공감세미나TDD 발담그기 @ 공감세미나
TDD 발담그기 @ 공감세미나beom kyun choi
 
keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)beom kyun choi
 
Tensorflow regression 텐서플로우 회귀
Tensorflow regression 텐서플로우 회귀Tensorflow regression 텐서플로우 회귀
Tensorflow regression 텐서플로우 회귀beom kyun choi
 
Ddd start 부록 지앤선&ksug
Ddd start 부록 지앤선&ksugDdd start 부록 지앤선&ksug
Ddd start 부록 지앤선&ksugbeom kyun choi
 
파이썬 언어 기초
파이썬 언어 기초파이썬 언어 기초
파이썬 언어 기초beom kyun choi
 
도메인구현 KSUG 20151128
도메인구현 KSUG 20151128도메인구현 KSUG 20151128
도메인구현 KSUG 20151128beom kyun choi
 
Event source 학습 내용 공유
Event source 학습 내용 공유Event source 학습 내용 공유
Event source 학습 내용 공유beom kyun choi
 
모델링 연습 리뷰
모델링 연습 리뷰모델링 연습 리뷰
모델링 연습 리뷰beom kyun choi
 
ALS WS에 대한 이해 자료
ALS WS에 대한 이해 자료ALS WS에 대한 이해 자료
ALS WS에 대한 이해 자료beom kyun choi
 
Ji 개발 리뷰 (신림프로그래머)
Ji 개발 리뷰 (신림프로그래머)Ji 개발 리뷰 (신림프로그래머)
Ji 개발 리뷰 (신림프로그래머)beom kyun choi
 
리뷰의 기술 소개
리뷰의 기술 소개리뷰의 기술 소개
리뷰의 기술 소개beom kyun choi
 
스프링 시큐리티 구조 이해
스프링 시큐리티 구조 이해스프링 시큐리티 구조 이해
스프링 시큐리티 구조 이해beom kyun choi
 
자바8 스트림 API 소개
자바8 스트림 API 소개자바8 스트림 API 소개
자바8 스트림 API 소개beom kyun choi
 
자바8 람다식 소개
자바8 람다식 소개자바8 람다식 소개
자바8 람다식 소개beom kyun choi
 

Plus de beom kyun choi (20)

옛날 웹 개발자가 잠깐 맛본 Vue.js 소개
옛날 웹 개발자가 잠깐 맛본 Vue.js 소개옛날 웹 개발자가 잠깐 맛본 Vue.js 소개
옛날 웹 개발자가 잠깐 맛본 Vue.js 소개
 
DDD로 복잡함 다루기
DDD로 복잡함 다루기DDD로 복잡함 다루기
DDD로 복잡함 다루기
 
TDD 발담그기 @ 공감세미나
TDD 발담그기 @ 공감세미나TDD 발담그기 @ 공감세미나
TDD 발담그기 @ 공감세미나
 
keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)
 
DDD 준비 서문래
DDD 준비 서문래DDD 준비 서문래
DDD 준비 서문래
 
Tensorflow regression 텐서플로우 회귀
Tensorflow regression 텐서플로우 회귀Tensorflow regression 텐서플로우 회귀
Tensorflow regression 텐서플로우 회귀
 
Ddd start 부록 지앤선&ksug
Ddd start 부록 지앤선&ksugDdd start 부록 지앤선&ksug
Ddd start 부록 지앤선&ksug
 
MVP 패턴 소개
MVP 패턴 소개MVP 패턴 소개
MVP 패턴 소개
 
파이썬 언어 기초
파이썬 언어 기초파이썬 언어 기초
파이썬 언어 기초
 
도메인구현 KSUG 20151128
도메인구현 KSUG 20151128도메인구현 KSUG 20151128
도메인구현 KSUG 20151128
 
Event source 학습 내용 공유
Event source 학습 내용 공유Event source 학습 내용 공유
Event source 학습 내용 공유
 
Spring Boot 소개
Spring Boot 소개Spring Boot 소개
Spring Boot 소개
 
모델링 연습 리뷰
모델링 연습 리뷰모델링 연습 리뷰
모델링 연습 리뷰
 
ALS WS에 대한 이해 자료
ALS WS에 대한 이해 자료ALS WS에 대한 이해 자료
ALS WS에 대한 이해 자료
 
Ji 개발 리뷰 (신림프로그래머)
Ji 개발 리뷰 (신림프로그래머)Ji 개발 리뷰 (신림프로그래머)
Ji 개발 리뷰 (신림프로그래머)
 
리뷰의 기술 소개
리뷰의 기술 소개리뷰의 기술 소개
리뷰의 기술 소개
 
스프링 시큐리티 구조 이해
스프링 시큐리티 구조 이해스프링 시큐리티 구조 이해
스프링 시큐리티 구조 이해
 
자바8 스트림 API 소개
자바8 스트림 API 소개자바8 스트림 API 소개
자바8 스트림 API 소개
 
자바8 람다식 소개
자바8 람다식 소개자바8 람다식 소개
자바8 람다식 소개
 
Zookeeper 소개
Zookeeper 소개Zookeeper 소개
Zookeeper 소개
 

HBase 훑어보기

  • 2. HBase ● Hadoop 기반의 NoSQL ○ 컬럼 패밀리 + 스키마 없음 ○ 조인, 인덱스 없음 ○ 행 단위 조작에 대해서만 Atomic ■ 다중 행에 대한 트랜잭션 지원 없음 ● 분산 데이터 저장소 ○ 데이터를 다수 서버에 분산 보관 ○ 자주 접근되는 데이터를 메모리에 캐시 ● 데이터 영속성 ○ 물리적 저장소로 HDFS를 사용
  • 3. 데이터 모델 1개 테이블의 구조 rowkey column qualifier info 컬럼패밀리 bkchoi email: bkchoi@scgs.co.kr madvirus name: 최 범균 email: madvirus@madvirus.net zoro address 컬럼패밀리 realname: 돈 디에고 데 라 베가 addr2: 상도동 ... addr1: 서울시 관악구 cell addr1: 서울시 동작구 zipcode 신사동 ….
  • 4. 데이터 모델 ● 테이블은 n개의 컬럼 패밀리를 가짐 ● 1개의 행 = rowkey + 컬럼패밀리들 ○ rowkey를 기준으로 정렬: 유일한 인덱스 ● 컬럼 패밀리 ○ 임의의 (column qualifer, 값) 쌍들로 구성 ● column qualifer의 값은 n개의 버전을 가짐 ○ 기본 설정은 3개의 마지막 버전 보관 ○ 버전 값은 시간(timestamp)을 이용 ● 단일 셀 식별 ○ <rowkey, column family, column qualifer, version> ● rowkey, column qualifier, 셀 값의 타입 ○ byte 배열
  • 5. 데이터 모델 예시: 채팅메시지 rowkey: 대화ID-timestamp(역순) message 컬럼 패밀리 location 컬럼 패밀리 1010101-0000124345456 senderId: kame senderName: 출판사 message: 안녕하세요 1010101-0000124345477 senderId: bkchoi senderName: 최범균 message: 네~ coord: locname: 파주
  • 6. 데이터 접근 오퍼레이션 ● get: 특정 rowkey에 해당하는 row 접근 ● put: 특정 rowkey에 해당하는 데이터를 추가 또는 변경 ● delete: 특정 rowkey에 해당하는 row 삭제 ● scan: 특정 범위의 rowkey에 속하는 row 목록 접근 ● increment: 특정 셀의 값을 증가 ● CAS(compare and set): 특정 셀의 값을 비교 후 설정
  • 7. 리전Region ● 테이블의 부분 집합을 관리 ○ 각 리전은 특정 범위의 rowkey 데이터를 다룸 ■ 예) 리전1: [~1000], 리전2: [1001~] ○ 리전 서버마다 n개의 리전을 제공 ● 일정 크기 이상 커지면 분리 리전서버 테이블A 의 리전1 테이블B 의 리전2 리전서버 테이블A 의 리전2 테이블B 의 리전1 테이블B 의 리전3
  • 8. 리전서버, 마스터서버, 주키퍼 테이블 생성, 삭제, 수정 요청 리전 위치 검색 클라이언트 주키퍼 클러스터 마스터서버 DDL 처리 리전 할당 관 리 리전 분리 정보 제공 데이터 송수신 리전서버 리전서버 HDFS 데이터노드 HDFS 데이터노드
  • 9. 리전의 구성 변경 내역 로그 리전서버 LRU 캐시. HFile의 블록을 캐 시 블록캐시 (BlockCache) 리전 (특정 테이블의 rowkey 1000~ 범위) 데이터를 Put 하면 일단 멤스토어에 보관. 멤스토어가 가득 차면 HFile 형식으로 파일로 Flush하고 멤스토어를 비움. 스토어 스토어(컬럼패밀리 당 1개) 리전 HLog (WAL) 멤스토어 (MemStore) HFile HFile HFile <rowkey, cf, c, ver, 값> 목록을 가짐. 파일 파일 파일 파일 시스템(HDFS) 파일
  • 10. HFile Compaction ● Minor Compaction ○ 주어진 기준에 따라 작은 크기의 HFile들을 묶어서 한 개의 HFile로 만듦 ■ 기준: 스토어의 최대/최소 HFile 개수, 최소 크기, 최대 크기 등을 고려해서 합칠 파일 선택 ○ 삭제된 행, 오래된 버전도 그대로 복사 ● Major Compaction ○ 스토어의 모든 HFile을 합쳐서 1개의 HFile 생성 ○ 삭제된 행, 오래된 버전은 삭제 됨
  • 11. 컬럼 패밀리 별 설정 ● HFile 블록 크기: 기본 64KB ○ 블록 크기 작으면 랜덤 접근, 크면 순차 스캔 유리 ● 블룸 필터 ○ 검색 데이터가 해당 블록에 존재하지 않는지에 대한 데이터를 추가할 지 여부 (기본은 추가하지 않음) ● TTL: 데이터 수명 지정 (초 단위, 기본 값은 TTL 없음) ○ major compaction에서 TTL 보다 오래된 버전을 삭제 ● 압축: ○ 블록 데이터를 디스크에 저장할 때 압축처리 ● 셀 버전 개수: 기본 3개 ○ 개수 지정 가능 (예, 1개) ○ 최소 보관 개수 지정 가능 ■ 이 경우 TTL 보다 오래된 버전도 최소 1개 남음
  • 12. 기타 ● 클러스터 계획/운영 ● 백업/클러스터 간 복제 ● HBase MR 이용