Apache HBase 설치하기

2013. 12. 18. 12:52 from Cloud/Hadoop

apache hbase


1. Introduction

HBase는 Google이 2006년에 발표한 BigTable이라는 NoSQL 데이터베이스의 아키텍처를 그대로 따르고 있습니다. HBase는 뛰어난 Horizontal Scalability를 가지는 Distributed DB로써, Column-oriented store model을 가지고 있습니다. 사용량이 늘어남에 따라서 Regionserver만 추가해주면 자연스럽게 Scale-out이 되는 구조를 가지고 있습니다. 또한, Hadoop 특유의 Sequential read/write를 최대한 활용해서 Random access를 줄임으로 Disk를 효율적으로 사용한다는 점을 특징으로 합니다. 이 때문에 HBase는 보통의 RDBMS와는 다르게 Disk IO가 병목이 되기보다는 CPU나 RAM 용량이 병목이 되는 경우가 많습니다.

2. Install - Pseudo-distributed Mode

2.1. 다운로드

$ wget http://mirror.apache-kr.org/hbase/stable/hbase-0.98.9-hadoop2-bin.tar.gz
$ tar xvfz hbase-0.98.9-hadoop2-bin.tar.gz
$ mv hbase-0.98.9-hadoop2-bin hbase-0.98.9
$ cd hbase-0.98.9

2.2. Hbase Configuration

$ vi ${HBASE_HOME}/conf/hbase-env.sh
# modify
export JAVA_HOME=/usr/java/default
export HBASE_MANAGES_ZK=true
export HBASE_HEAPSIZE=1000
- 색 항목 주석 해제, 설정 합니다.
- 다음 명령어로 다시 Zookeeper 서버를 종료합니다.
$ ${ZK_HOME}/bin/zkServer.sh stop
$ vi ${HBASE_HOME}/conf/hbase-site.xml
<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://localhost:9000/hbase</value>
  </property>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>localhost</value>
  </property>
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>Zookeeper의 DataDir</value>
  </property>
</configuration>

3. 환경설정

$ vi ~/.bash_profile
# Hbase
export HBASE_HOME=/home/hadoop/hbase-0.98.9
export PATH=$PATH:$HBASE_HOME/bin
$ source ~/.bash_profile

4. 실행 및 확인

hadoop에 /hbase 디렉토리를 생성한다.

$ ${HADOOP_HOME}/bin/hdfs dfs -mkdir /hbase

- 실행

$ ${HBASE_HOME}/bin/start-hbase.sh
starting master, logging to /home/hadoop/hbase-0.98.9/logs/hbase-hadoop-master-localhost.localdomain.out
localhost: starting regionserver, logging to /home/hadoop/hbase-0.98.9/bin/../logs/hbase-hadoop-regionserver-localhost.localdomain.out

- 로그 및 데몬 확인

$ jps
5960 DataNode
6960 QuorumPeerMain
7117 HMaster
6273 TaskTracker
7662 Jps
7268 HRegionServer
6073 SecondaryNameNode
6157 JobTracker
5852 NameNode

- 다음 명령어를 이용하여 HDFS에 HBase 폴더가 정상적으로 생성되었는지 확인합니다.

$ ${HADOOP_HOME}/bin/hdfs dfs -ls /hbase

Found 7 items
drwxr-xr-x   - hadoop supergroup          0 2013-12-05 02:28 /hbase/-ROOT-
drwxr-xr-x   - hadoop supergroup          0 2013-12-05 02:28 /hbase/.META.
drwxr-xr-x   - hadoop supergroup          0 2013-12-05 02:28 /hbase/.logs
drwxr-xr-x   - hadoop supergroup          0 2013-12-05 02:28 /hbase/.oldlogs
drwxr-xr-x   - hadoop supergroup          0 2013-12-05 02:28 /hbase/.tmp
-rw-r--r--   3 hadoop supergroup         38 2013-12-05 02:28 /hbase/hbase.id
-rw-r--r--   3 hadoop supergroup          3 2013-12-05 02:28 /hbase/hbase.version

- 다음 명령어를 이용하여 Zookeeper에도 Hbase가 정상적으로 등록되었는지 확인합니다.

${ZK_HOME}/bin/zkCli.sh -server IP_ADDRESS:2181
...
[zk:IP_ADDRESS:2181 (CONNECTED)] ls /
[zookeeper, hbase]
출력되는 항목에 hbase가 있어야 합니다.

- 웹 확인

http://localhost:60010

http://localhost:60030


- HBase Shell

$ hbase shell
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 0.94.10, r1504995, Fri Jul 19 20:24:16 UTC 2013

hbase(main):001:0>           
hbase(main):001:0> create 'Person', 'basic', 'detail'
0 row(s) in 3.0920 seconds

hbase(main):002:0> list
TABLE
Person
1 row(s) in 0.0520 seconds

hbase(main):003:0> list 'Person'
TABLE
Person
1 row(s) in 0.0320 seconds

hbase(main):004:0> put 'Person','533001198510125838','basic:idcard','533001198510125838'
0 row(s) in 0.1350 seconds

hbase(main):005:0> put 'Person','533001198510125838','basic:name','kim'
0 row(s) in 0.0160 seconds

hbase(main):006:0> put 'Person','533001198510125838','detail:age','25'
0 row(s) in 0.0180 seconds

hbase(main):007:0> get 'Person','533001198510125838'
COLUMN                         CELL
 basic:idcard                  timestamp=1386005571812, value=533001198510125838
 basic:name                    timestamp=1386005579846, value=kim
 detail:age                    timestamp=1386005585572, value=25
3 row(s) in 0.0440 seconds

hbase(main):008:0> scan 'Person'
ROW                            COLUMN+CELL
 533001198510125838            column=basic:idcard, timestamp=1386005571812, value=533001198510125838
 533001198510125838            column=basic:name, timestamp=1386005579846, value=kim
 533001198510125838            column=detail:age, timestamp=1386005585572, value=25
1 row(s) in 0.0530 seconds  

참고 :

- http://hbase.apache.org/book/quickstart.html

- HBase 설치하기

'Cloud > Hadoop' 카테고리의 다른 글

Apache Oozie Installation on Hadoop 2  (0) 2014.11.25
Apache Kafka Introduction  (0) 2014.01.03
Apache HBase 설치하기  (0) 2013.12.18
Apache Hive 설치하기  (0) 2013.12.18
How to install Hadoop 2.2.0 (Pseudo-Distributed Mode)  (0) 2013.12.17
libhdfs-C에서 hadoop사용  (0) 2011.09.02
Posted by 신공표 트랙백 0 : 댓글 0

댓글을 달아 주세요