Transcript HBASE

순제군용
5기 강순용
5기 박군제
Welcome to Apache HBase™
Index.
I.
BigData
I.
II.
II.
BigData
NoSQL, Hadoop
HBASE
I.
II.
III.
Introduce
Implement
Coprocessor
III. Using HBASE
UntoC@순제군용
Ⅰ. Big Data
UntoC@순제군용
1. Big Data
UntoC@순제군용
Big Data
디지털 환경에서 생성되는
규모가 방대, 생성 주기는 짧음
형태도 수치 데이터 외에도
문자, 영상을 포함하는
대규모 데이터
UntoC@순제군용
5
Big Data
인터넷 기업의 등장과 글로벌 디지털 데이터 규모
UntoC@순제군용
6
Big Data
구분
데이터
하드웨어
기존
빅데이터 환경
- 정형화된 수치자료 중심
-
고가의 저장장치
-
데이터베이스
-
비정형의 다양한 데이터
-
문자 데이터(SMS, 검색어)
-
영상 데이터(CCTV, 동영상)
-
위치 데이터
- 클라우드 컴퓨팅 등 장비 활용 가능
-
관계형 데이터베이스(RDBMS)
-
통계패키지(SAS, SPSS)
-
machine learning, knowledge
discovery
소프트웨어
- 데이터 마이닝(data mining)
/분석 방법
-
오픈소스 형태의 무료 소프트웨어
- Hadoop, NoSQL
-
오픈 소스 통계솔루션(R)
-
텍스트 마이닝(text mining)
-
온라인 버즈 분석(opinion mining)
-
감성 분석(sentiment analysis)
UntoC@순제군용
7
2. NoSQL, Hadoop
UntoC@순제군용
RDBMS
정형화된 Table로 구성된 데이터 항목들의 집합체
사용자와 Relational Database를 연결시켜 주는
검색 언어를 SQL이라고 함
UntoC@순제군용
9
NoSQL
Not Only SQL!
분산, 내고장성[fault tolerance] 구조
UntoC@순제군용
10
NoSQL 특징
관계형 데이터
모델이 아닌 키-값,
문서형, 컬럼형
데이터는 분산된
노드에 파티션
복제되어 저장
정합성보다는
단절내성
UntoC@순제군용
11
Hadoop
• 대용량 데이터 처리 분석을 위한
대규모 분산 컴퓨팅 지원 프레임 워크
• HDFS를 통해 분산저장 MapReduce를 통해
분산처리
• Hadoop은 여러개의 컴퓨터를 하나 인 것
처럼 묶어는 기술로 저장공간, 계산력 늘림
UntoC@순제군용
12
Hadoop
UntoC@순제
하드웨어
군용 오동작
스트리밍 접근
큰 자료 집합
/
간단한 결합 모델
호환성
MapReduce
• 데이터 처리를 위한 프로그래밍 모델
• MapReduce = Map + Reduce
– Map 함수에서 Data 처리
– Reduce 함수에서 원하는 결과 값을 계산
UntoC@순제군용
14
MapReduce
• 키-값 모델
• 데이터를 나누고, 합치는 작업을 대행
• 병렬 처리 중에서 간단한 구조를 지향
UntoC@순제군용
15
The Hadoop Ecosystem
UntoC@순제군용
16
Ⅱ. HBase
UntoC@순제군용
1. Introduce
HBASE
UntoC@순제군용
HBase란?
2006년 차드 월터스와 짐 캘러만에 의해
시작되어 현재는
Apache 프로젝트로 개발이 진행되고 있는
Open source Software
UntoC@순제군용
19
Introduce
구글 Bigtable을 모델로 하여 초기 모델 개발
- 2007년
Hadoop의 서브 프로젝트로 편입
- 2008년
구글의 BigTable에 기반한
UntoC@순제군용
20
Introduce
용량이 큰 데이터에 대해서 온라인으로 처리한다.
– 랜덤하게 엑세스하는 것과 업데이트가 즉각적이다.
– 각각의 프로세스들은 개인의 레코드들을 비동기적으로 업
데이트할 수 있다.
UntoC@순제군용
21
Introduce
SQL DB가 아님
RDBMS 대체가 아님
UntoC@순제군용
22
Introduce
기존 RDBMS
단일 노드의 크기로 정리
그에 따른 부가물이 발생
: 파티션, 복잡한 대체물, 비싼 비용 등
RDBMS에 무리를 가지고 옴
: 비정규화, DB레벨의 조인이 없는 것 등
반면에 Hbase는
확장 가능한 데이터 저장소
HBase? 축소된 RDBMS!
UntoC@순제군용
23
HBase vs. RDBMS
HBase
RDBMS
컬럼 기반
로우 기반
동적스키마
고정스키마
MapReduce Join
Join
초당 수십만건 R/W
초당 수천건 R/W
최대 PB급 저장 용량
최대 TB급 저장 용량
UntoC@순제군용
24
Introduce
Hadoop 분산파일시스템(HDFS)
상의 데이터 위에서 동작!
UntoC@순제군용
25
주요 용어
Table
- Row들의 집합
- Schema 정의서 Column Family 만 정의
Row Key
- 임의의 Byte열로 사전순으로 내림차순 정렬
- 빈 Byte문자열은 테이블의 시작과 끝을 의미
Column Family
- Column들의 그룹으로 모든 컬럼패밀리의 Member는
같은 접두사를 사용
Cell
- Row key & Column & Version이 명시된 Tuple
- 값은 임의의 Byte열
UntoC@순제군용
26
Data Model
Table : Rows X Columns X Timestamp
Rows
유동적인 Byte 배열(URL)
비교기(Byte-Order)로 정렬
Columns
Column-families에 그룹정리됨
첫번째 패밀리 그룹핑 후 세부 정의가 됨
Webpage : one
Webpage : two
…
Cell
세부 정의 – 유동적인 Byte
Columnfamily
Timestamp와 같은 데이터.(유동적인 Byte 배열)
Region(파티션)에 의해 테이블이 나뉘어지며,
Region은 시작행, 끝행에서 정의한다.
클러스터처럼 ‘구분’할 수 있는 요소로 작용한다.
UntoC@순제군용
27
Strength
데이터 일관성 보장
효율적인 데이터 압축
이전 버전의 데이터 값 관리 가능
한 행에 대한 Atomic 처리 가능
Web Console을 통해 모니터링 가능
UntoC@순제군용
28
Weakness
1 . 다른 NoSQL 데이터베이스 비해 이해 어려움
- 다수의 프로그램으로 이루어져 있기 때문
- 효율적인 관리 위해서는 HDFS, Zookeeper 등 뿐만
아니라 다른 시스템에 대해 알아야 함
- 생소한 컬럼형 구조를 사용하고 있어서 조기 진입
벽이 높음
UntoC@순제군용
29
Weakness
2. 특정 범위의 Key값에 저장 요청이 집중 되는 경우에
문제 발생
- HDFS를 파일시스템으로 사용하기 때문
- HDFS의 파일정보를 관리하는 Namenode에서
문제 발생 or Namenode에서 구동되어 있는
서버가 다운 될 경우, Hbase에도 문제 발생.
3. 아직까진 안정적이지 않은 버전-불안정
- 신규버전이 나올때까지 많은 변경사항이 생길 수 있음
UntoC@순제군용
30
2. Implementation
HBASE
UntoC@순제군용
Implementation
마스터, 하나 혹은 그 이상의 파티션 서버
그리고 클라이언트
마스터 : 파티션서버에 테이블 파티션들을 인증시킴
파티션서버 : 0~N개의 파티션정보를 가짐
UntoC@순제군용
32
Implementation
• 각각의 파티션(Region)은 저장하면서 정보를 정립함
– 데이터 모델의 Column-family는 데이터의 저장시 구현됨
Wow
Brave
Data
– 저장 메모리캐시는 파티션적인 쓰기방식을 택함
(파티션이 꽉 차면 Flush!)
– Flush후 storefile을 추가한다
– Store마다 N개 이상의 파일이 만들어지면, 압축해놓는다.
UntoC@순제군용
33
Implementation
Traffic 흐름도
④
Client
①
마스터,
자료 좀
…굽신굽신
Master
Cashing Client
③
엉엉ㅜ 실패라니!!!
실패할 경우(split/crash error)
마스터에게 알려 빨리
해결하도록 구축
②
Region Hosting row
알았옹. 잠시만
창고에서 가져올게.
- 마스터가 파티션에 접근 후,
클라이언트에 자료 반환
클라이언트가 다시 접근했을 때,
빨리 연결해주기 위한 것!!
UntoC@순제군용
34
Implementation
HBase의 쓰기 연산
UntoC@순제군용
35
Implementation
HBase 의 간단한 연산
UntoC@순제군용
36
3. Coprocessor
HBASE
UntoC@순제군용
Coprocessor
• 보조 처리기
• Coprocessor는 서버에서 실행되는 Code
• Observer와 Endpoint 두 종류 존재
UntoC@순제군용
38
Coprocessor
UntoC@순제군용
39
Observer
• RDB의 Trigger 와 비슷함
• 다른 점은 Trigger는 Select에는 적용 불가,
Observer는 Scan 에도 적용 가능
• HBase의 Coprocessor는 Trigger 보다
활용도가 훨씬 큼
UntoC@순제군용
40
Observer
RegionObServer
WALObserver
MasterObServer
UntoC@순제군용
41
Endpoint
• RDB의 Stored procedure 와 같음
• Coprocessor는 MapReduce 처럼, 작업을 전
체 Cluster에 분산해서 처리하는 것이 큰 장점
• 동적으로 Load할 수 있으므로 HBase 를 중지
하지 않고도 추가 가능
• Stored procedure 처럼 호출해서 사용
UntoC@순제군용
42
Coprocessor
• Where?
– 각 Region Server에서 직접 처리
– 각 Region Server에 jar 파일 형태로
컴파일하여 제공 되어야 됨.
– Region Server에 coprocessor Loading
on/off 하게 제공 됨.
UntoC@순제군용
43
Coprocessor priority
• 우선순위를 지정 가능, 반드시 대문자로 씀
• SYSTEM : 우선순위 가능 높음
• USER : 일반적으로 적용
• 동일 우선순위에서는 load 된 순서대로 처리
UntoC@순제군용
44
Coprocessor state
우선순위를 지정할 수 있다.
UNINSTALLED 환경을 갖지 않았고, 초기화되지 않은 상태
INSTALLED
설치 완료
STARTING
start() method 가 실행되기 직전 상태
ACTIVE
start() 된 상태
STOPPING
stop() method가 실행되기 직전 상태
STOPPED
stop() 후 상태
UntoC@순제군용
45
Coprocessor Loading
• Loading from configuration(hbase-site.xml)
UntoC@순제군용
46
Coprocessor Loading
• sequence diagram
UntoC@순제군용
47
Ⅲ. Using HBase
UntoC@순제군용
Using HBase
대량 데이터를 다루면서 데이
터 일관성이 요구되는 서비스
데이터 일관성 및 트랜잭션
필요한 서비스
쓰기보다는 읽기 요청
Hadoop을 사용하여 대량 데
이터를 분석하는 서비스
UntoC@순제군용
49
HBase 적용사례
WorldLingo
UntoC@순제군용
50
HBase 이용 예
1. 대형 SNS서비스의 주 스토리지
2. 다수의 저가 서버 분산하여 사용하는
관계형 DB
UntoC@순제군용
51
Thank you for
your attention!
Q&A
UntoC@순제군용