Transcript 빅데이터
Hadoop기반 빅데이터 실무과정
Hbase 개요 및 설치
빅데이터 최고의 커뮤니티
http://www.bicdata.com
Bigster 이사 김기선
SHARE THE KNOWLEDGE
CopyLeft © 2012 BIWORLD
목차
1. 개요
2. 설치
3. 동작 실습
4. Q&A
1 / 20
빅데이터 – http://www.bicdata.com
1. Hbase 개요
Hbase의 개요
HBase 개요
- Open Source BigTable
- HDFS
- 분산락킹 Zookeeper
- 하둡 MapReduce와 밀접한 연동
- 데이터 모델
- 아키텍처
- Access & API
- Use Case
- HBase vs RDBMS
2 / 20
빅데이터 – http://www.bicdata.com
1.Hbase 개요
Hbase의 주요 용어
• 테이블 (Table)
- 로우(Row)들의 집합.
- 각 로우는 로우키(Row Key)가있으며 다수의 컬럼패밀리로 구성됨
- 스키마 정의시 컬럼패밀리(Column Family)만 정의
• 로우키(Row Key)
- 임의의바이트열, 사전순으로 내림차순 정렬
- 빈바이트 문자열은 테이블의 시작과 끝을 의미
• 컬럼패밀리 (Column Family)
- 컬럼들의그룹이며, 컬럼패밀리의 멤버컬럼은 같은접두사(prefix)
- course:history와 course:math는 course라는 컬럼패밀리의 멤버컬럼임.
history와 math를 컬럼 Qualifier라고 함
• 셀(Cell)
- 로우키& 컬럼& 버전이 명시된 튜플
- 값은 임의의 바이트열이며 Timestamp가있음
StumbleUpon의 HBase의 선택 이유
3 / 20
빅데이터 – http://www.bicdata.com
1.Hbase 개요
Hbase의 데이터 모델 : 셀
• Sparse, Multi Dimensional Map
( row, column, timestamp ) -> cell
• 컬럼 = 컬럼패밀리:컬럼Qaulifier
• 정렬
- 로우는 String이 아닌 Byte로 저장되고 정렬되어 있음
- 컬럼도 정렬되어 저장
=> 인접한 로우/컬럼을 읽기에 최적화됨
=> 단순 SCAN시에는 키를 사용하지 않음
4 / 20
빅데이터 – http://www.bicdata.com
1.Hbase 개요
Hbase의 데이터 모델 : 저장구조
5 / 20
빅데이터 – http://www.bicdata.com
1.Hbase 개요
Hbase의 데이터 모델 : 저장구조
6 / 20
빅데이터 – http://www.bicdata.com
2. Hbase 설치
Hbase 설치
• 다운로드
- http://hbase.apache.org/
- wget http://apache.mirror.cdnetworks.com/hbase/hbase-0.94.2/hbase-0.94.2.tar.gz 미러사
이트에서 tarball 다운로드
• 압축풀기
- 설치를 원하는 곳에서 다운 받은 hbase-0.94.2.tar.gz를 푼다.
- tar –zxvf hbase-0.94.2.tar.gz
- ln –s hbase-0.94.2 hbase : 심볼릭 링크 설정
• 설정잡기
- ~/hbase/conf/hbase-env.sh, hbase-site, regionservers
7 / 20
빅데이터 – http://www.bicdata.com
2. Hbase 설치
Hbase 설치
vi ~/hbase/conf/hbase-env.sh
- export HBASE_CLASSPATH=/home/hadoop/hbase/conf
- export HBASE_MANAGES_ZK=true
zookeeper를 hbase가 작동할 때에 맞춰서 가동되게 할때
vi ~/hbase/conf/hbase-site.xml
<property>
<name>hbase.rootdir</name>
<value>hdfs://namenode:9000/hbase</value>
</property>
<property>
<name>hbase.master.port</name>
<value>60000</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>/home/bdh/hbase/tmp</value>
</property>
<property>
8 / 20
빅데이터 – http://www.bicdata.com
2. Hbase 설치
Hbase 설치
vi ~/hbase/conf/hbase-site.xml (계속)
<property>
<name>hbase.zookeeper.quorum</name>
<value>datanode1, datanode2, datanode3</value>
</property>
<property>
<name>hbase.zookeeper.peerport</name>
<value>2888</value>
</property>
<property>
<name>hbase.zookeeper.leaderport</name>
<value>3888</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
9 / 20
빅데이터 – http://www.bicdata.com
2. Hbase 설치
Hbase 설치
vi regionservers
- Hbase를 구성하는 members(리즌서버)
datanode1
datanode2
datanode3
HBase클러스터를 구성하는 모든 서버에
동일하게 설치 및 설정을 해줌
10 / 20
빅데이터 – http://www.bicdata.com
3. Hbase 실습
Hbase 실습
~/hbase/bin/hbase shell
11 / 20
빅데이터 – http://www.bicdata.com
3. Hbase 동작실습
Hbase 실습
Hbase console 시현
- list : 테이블 리스트
- create 'customer', {NAME=>'customer_name'}, {NAME=>‘address'},
{NAME=>'contact_detail'}
- count ‘customer’
- scan 'customer‘
- put 'customer',101, 'customer_name:first_name', 'kisun‘
- put 'customer',101, 'customer_name:last_name', 'kim’
- get 'customer', 101
- scan 'customer', 101
- put 'customer',101, 'customer_name:first_name', ‘bradley‘
- put 'customer',101, 'customer_name:first_name', ‘brandon‘
- get ‘customer’, 101
- get 'customer' ,101, {COLUMN => 'customer_name:first_name', VERSIONS => 3}
12 / 20
빅데이터 – http://www.bicdata.com
3. Hbase 동작실습
Hbase 실습
Hbase console 시현 (계속)
- delete 'customer', 101, 'customer_name:first_name', 1353159212502
- delete ‘t1’, ‘r1’, ‘c1’, ts1 : timestamp 이전의 모든 value 값 삭제
- put 'customer', 101, 'conntact_detail:tel_no', '02-7777-7777‘
- put 'customer', 101, 'conntact_detail:hp_no', '010-7777-7777‘
- put 'customer', 101, 'conntact_detail:fax_no', '02-5555-7777‘
- get ‘customer’, 101
- 컬럼 패밀리는 테이블 선언시 명시를 해줘야 하지만 컬럼 패밀리 안의 컬럼(컬럼아이덴티파이
어)는 값을 입력(put)할 때 동적으로 할당됨(Nosql의 성격: schema free)
- 위의 경우에서 고객 연락처 상세 컬럼 패밀리 안에서 컬럼 아이덴티파이어는 무한정 증가 할
수 있음
13 / 20
빅데이터 – http://www.bicdata.com
3. Hbase 동작실습
Hbase 실습
14 / 20
빅데이터 – http://www.bicdata.com
3. Hbase 동작실습
Hbase 실습
15 / 20
빅데이터 – http://www.bicdata.com
3. Hbase 동작실습
Hbase 실습
16 / 20
빅데이터 – http://www.bicdata.com
3. Hbase 동작실습
Hbase 실습
17 / 20
빅데이터 – http://www.bicdata.com
3. Hbase 동작 실습
Hbase 실습
Hbase 모델의 특징 1
RDBMS 모델링
고객번호(PK)
고객이름
배송주소ID
.....
….
Hbase 모델링
고객번호 배송지주소1, 배송지주소2,
배송지주소3, 배송지주소4,
배송지주소5, 배송지주소6
같은 CF안에서 옆으로 무한정 확장
각각의 컬럼의 값들이 버젼관리가 가능
고객번호(PK)
배송주소ID(PK)
우편번호
주소1
상세주소
18 / 20
빅데이터 – http://www.bicdata.com
3. Hbase 동작 실습
Hbase 실습
Hbase 모델의 특징 2
rowkey
First_name
Last_name
Addr1
Addr2
Add3
101
Kisun
Kim
Jeju
Seoul
Guri
102
Hana
Lee
Seoul
103
Dool
Cha
Keongi
19 / 20
add4
빅데이터 – http://www.bicdata.com
Q&A
20 / 20
빅데이터 – http://www.bicdata.com