HBase 0.98.7 소스 설치 (Hadoop 2.4)

이번에는 하둡 2.4 위에 Hbase 0.98.7을 단독으로 설치해 본다.

<설치환경>
OS : Ubuntu 14.04 LTS Server 64bit
Hadoop : HADOOP 2.4.1 (위치 /usr/local/hadoop, 계정 hduser:hadoop)
Java : JRE 1.7.x

1. HBase 소스 다운로드

현재 0.99.1 버전까지 있으나 안정버전으로는 0.98.7이 나와있다. (2014년10월)

링크 http://apache.tt.co.kr/hbase/stable/

2. HBase 소스 빌드

HBase는 0.98 버전부터는 Hadoop 2.x를 기본으로 빌드환경이 설정되어 있으며, 그 이전 버전의 Hadoop에 대해서는 Profile 옵션을 사용해야 한다.
ex) -Dhadoop.profile=1.0

소스 컴파일에 대해서는 다음 문서에 잘 나와 있다. (Maven 이용)
==> http://hbase.apache.org/book/build.html

$ mvn -DskipTests clean install && mvn -DskipTests package assembly:single

$ ll hbase-0.98.7-src/hbase-assembly/target
합계 196
drwxrwxr-x 6 bgmin bgmin   4096 10월 30 15:16 ./
drwxrwxr-x 5 bgmin bgmin   4096 10월 30 15:16 ../
-rw-r--r-- 1 bgmin bgmin 151600 10월  9 04:17 CHANGES.txt
-rw-r--r-- 1 bgmin bgmin  11358  8월 19 07:11 LICENSE.txt
-rw-r--r-- 1 bgmin bgmin    897 10월  9 04:07 NOTICE.txt
-rw-r--r-- 1 bgmin bgmin   1377 10월  9 04:08 README.txt
drwxr-xr-x 4 bgmin bgmin   4096 10월  9 04:08 bin/
drwxr-xr-x 2 bgmin bgmin   4096 10월  9 04:08 conf/
drwxr-xr-x 7 bgmin bgmin   4096 10월 30 15:00 hbase-webapps/
drwxrwxr-x 3 bgmin bgmin   4096 10월 30 15:16 lib/

3. HBase 바이너리 설치 및 설정

/usr/local 위치에 설치하고 hduser 계정 소유로 변경한다. (관리상)
설정은 conf의 ~env.sh과 ~site.xml을 수정해서 한다.

$ sudo mv hbase-0.98.7 /usr/local/

$ cd /usr/local/

$ sudo chown -R hduser:hadoop hbase-0.98.7/

$ sudo ln -s hbase-0.98.7/ hbase

# 환경설정
$ vi ~/.bashrc
...
export HBASE_HOME=/usr/local/hbase
export PATH=$PATH:$HBASE_HOME/bin
...

# HBase conf 설정 (StandAlone 타입)
$ cd /usr/local/hbase
$ vi conf/hbase-site.xml
...
<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>
...
# zookeeper용 디렉토리를 생성 (주키퍼 설치 없이, StandAlone 타입)
$ mkdir zookeeper

# Hadoop에 HBase용 디렉토리를 생성

4. HBase 실행

# HBase는 Hadoop을 바탕으로 실행되므로 우선 하둡을 확인
$ jps
5554 NameNode
6087 ResourceManager
5688 DataNode
7229 Jps
5867 SecondaryNameNode
6216 NodeManager

# HMaster 프로세스 시작
$ bin/start-hbase.sh

# HBase를 시작하면 'HMaster' 프로세스가 실행된다
$ jps
7364 HMaster
5554 NameNode
6087 ResourceManager
5688 DataNode
5867 SecondaryNameNode
7493 Jps
6216 NodeManager

# HBase 대화형 콘솔 실행
$ bin/hbase shell
2014-10-31 07:40:02,633 INFO  [main] Configuration.deprecation: hadoop.native.lib is deprecated. Instead, use io.native.lib.available
HBase Shell; enter 'help' for list of supported commands.
Type "exit" to leave the HBase Shell
Version 0.98.7, rUnknown, Thu Oct 30 22:02:23 KST 2014

hbase(main):001:0> status
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/hbase-0.98.7/lib/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/hadoop-2.4.1/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
1 servers, 0 dead, 2.0000 average load

hbase(main):002:0> exit

# HMaster 프로세스 종료
$ bin/stop-hbase.sh

5. HBase Shell 테이블 생성&조회 예제

HBase의 Master 프로세스를 실행한 후 쉘 실행
쉘 안에서 도움말은 ‘help’를 치면 된다.

$ hbase shell

hbase> create 'test','cf'
0 row(s) in 0.2900 seconds
=> Hbase::Table - test

hbase> list 'test'
TABLE        
test
1 row(s) in 0.0070 seconds
=> ["test"]

hbase> put 'test', 'row1', 'cf:a', 'value1'
0 row(s) in 0.0770 seconds

hbase> put 'test', 'row2', 'cf:b', 'value2'
0 row(s) in 0.0030 seconds

hbase> put 'test', 'row3', 'cf:c', 'value3'
0 row(s) in 0.0030 seconds

hbase> scan 'test'
ROW     COLUMN+CELL
row1   column=cf:a, timestamp=1414721171438, value=value1
row2   column=cf:b, timestamp=1414721179483, value=value2
row3   column=cf:c, timestamp=1414721186425, value=value3
3 row(s) in 0.0190 seconds

hbase(main):013:0> get 'test', 'row1'
COLUMN  CELL                                                                 cf:a   timestamp=1414721171438, value=value1   
1 row(s) in 0.0130 seconds

hbase(main):014:0> describe 'test'
DESCRIPTION              ENABLED
 'test', {NAME => 'cf', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSI true
 ONS => '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'false', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}
1 row(s) in 0.0600 seconds

hbase(main):015:0>

위 예제를 실행한 후 Hadoop 저장소의 내용을 확인하면 다음과 같이 나타난다.

$ hadoop fs -ls /hbase
Found 6 items
drwxr-xr-x   - hduser supergroup          0 /hbase/.tmp
drwxr-xr-x   - hduser supergroup          0 /hbase/WALs
drwxr-xr-x   - hduser supergroup          0 /hbase/data
-rw-r--r--   1 hduser supergroup         42 /hbase/hbase.id
-rw-r--r--   1 hduser supergroup          7 /hbase/hbase.version
drwxr-xr-x   - hduser supergroup          0 /hbase/oldWALs
$ hadoop fs -ls /hbase/data
Found 2 items
drwxr-xr-x   - hduser supergroup          0 /hbase/data/default
drwxr-xr-x   - hduser supergroup          0 /hbase/data/hbase
$ hadoop fs -ls /hbase/data/hbase
Found 2 items
drwxr-xr-x   - hduser supergroup          0 /hbase/data/hbase/meta
drwxr-xr-x   - hduser supergroup          0 /hbase/data/hbase/namespace
$ hadoop fs -ls /hbase/data/default
Found 1 items
drwxr-xr-x   - hduser supergroup          0 /hbase/data/default/test
$ hadoop fs -ls /hbase/data/default/test
Found 3 items
drwxr-xr-x   - hduser supergroup          0 /hbase/data/default/test/.tabledesc
drwxr-xr-x   - hduser supergroup          0 /hbase/data/default/test/.tmp
drwxr-xr-x   - hduser supergroup          0 /hbase/data/default/test/17afeed2cccfeae973df0f1b27566483

6. HBase 웹매니저 실행

* 마스터용 http://localhost:60010/   (HBase 1.0+ 에서는 http://localhost:16010/)
* 리전서버용 http://localhost:60030/  (HBase 1.0+ 에서는 http://localhost:16030/)

9. 참고문서

HBase 소스 빌드 방법에 대해 설명
http://hbase.apache.org/book/build.html

HBase 단독설치시 설정 방법에 대해 설명
http://hbase.apache.org/book/quickstart.html
https://archanaschangale.wordpress.com/2013/08/29/installing-apache-hbase-on-ubuntu-for-standalone-mode/

Hadoop 2.2 + HBase 0.98 설치 설명
http://gelius7.blogspot.kr/2014/07/hadoop-220-hbase-0980-install-in-centos.html

성능 최적화 옵션 설정 사례
http://www.venturesquare.net/514286

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중

%d 블로거가 이것을 좋아합니다: