메뉴 건너뛰기

Bigdata, Semantic IoT, Hadoop, NoSQL

Bigdata, Hadoop ecosystem, Semantic IoT등의 프로젝트를 진행중에 습득한 내용을 정리하는 곳입니다.
필요한 분을 위해서 공개하고 있습니다. 문의사항은 gooper@gooper.com로 메일을 보내주세요.


hbase HBase 설치하기 – Pseudo-distributed

구퍼 2013.03.12 15:17 조회 수 : 2644

HBase 설치하기 – Pseudo-distributed

분산 데이터 관리를 위한 NoSQL 계열의 HBase
하둡 서브 프로젝트로 시작된 HBase는 하둡 파일 시스템을 이용하고, 클러스터 관리는 주키퍼를 이용한다.

현재 안정버전은 0.92.1 이다.
다운로드 : http://www.apache.org/dyn/closer.cgi/hbase/

JDK 6 이상이 설치되어있어야 한다.

또한, http://hbase.apache.org/book/os.html 에서 설명하듯이
HBase는 데이타베이스이기 때문에 동시에 많은 파일을 사용하게 되므로,
리눅스의 경우 1024로 제한된 파일 열기 옵션을 늘려줘야 한다.

# ulimit -a 혹은 ulimit -n 을 하면
open files (-n) 1024

이렇게 되어있을 것이다. 늘려주자.

# vi /etc/security/limits.conf

#
* soft nofile 32768
* hard nofile 32768
* soft nproc 32000
* hard nproc 32000

HBase는 Standalone 과 Distributed 모드로 설치를 할 수 있고,
Distributed 모드는 다시 Pseudo-distributed 와 Fully-distributed 로 구분된다.

Standalone 모드는 하둡 파일 시스템을 사용하지 않는다.
설치 방법은 http://hbase.apache.org/book/quickstart.html 를 참조하면 된다.
간단한 테스트용이라고 보면 되겠다.

Distributed 모드는 하둡 파일 시스템을 사용한다.
Pseudo-distributed 모드는 단일 노드에서 모든 데몬이 돌며, 테스트용으로 사용하면 되겠다.
Fully-distributed 모드는 모든 서버가 분산되며, 실제 운영에서는 이 모드로 사용하면 된다.

일단, Pseudo-distributed 모드로 설치를 해보자.
http://hbase.apache.org/book/standalone_dist.html

# cd /usr/local/src
# wget http://ftp.daum.net/apache/hbase/stable/hbase-0.92.1.tar.gz
# tar zxvf hbase-0.92.1.tar.gz
# cp -Rf hbase-0.92.1 /usr/local/hbase
# cd /usr/local/hbase

conf 디렉토리를 조회해보자.

# ll conf
total 24
-rw-r–r– 1 root root 2335 Jun 4 11:32 hadoop-metrics.properties
-rw-r–r– 1 root root 3529 Jun 4 11:32 hbase-env.sh
-rw-r–r– 1 root root 2250 Jun 4 11:32 hbase-policy.xml
-rw-r–r– 1 root root 983 Jun 4 11:32 hbase-site.xml
-rw-r–r– 1 root root 2070 Jun 4 11:32 log4j.properties
-rw-r–r– 1 root root 10 Jun 4 11:32 regionservers

일전에 하둡(Hadoop) 설치하기 – Single Node에서 Pseudo-Distributed Operation 설치를 했었다. 이때의 하둡 설정이 되어있다는 가정에서 시작하자.

또한, Zookeeper도 사용하기 때문에 주키퍼(ZooKeeper) 설치하기처럼 작업을 했다고 가정한다.

먼저 hbase-site.xml 를 수정한다.

# vi conf/hbase-site.xml

<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>localhost</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/data/zookeeper/data</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
</configuration>

그리고 주목할 점은 HBase Reference Guide 에서 꼭 읽으라는 섹션이 있다.
http://hbase.apache.org/book/hadoop.html

여기에서 꼭 설명하는 것이..
아래 두 설정도 추가해주라고 한다. 추가해주자.
추가해야하는 이유는… 걍 기존 버전의 문제점에 대한 패치 개념 정도 되겠다.

<property>
<name>dfs.support.append</name>
<value>true</value>
</property>
<property>
<name>dfs.datanode.max.xcievers</name>
<value>4096</value>
</property>

이제 hbase-env.sh 을 수정하자

# vi conf/hbase-env.sh

# The java implementation to use. Java 1.6 required.
# export JAVA_HOME=/usr/java/jdk1.6.0/
export JAVA_HOME=/usr/local/jdk1.6.0_31

# Extra Java CLASSPATH elements. Optional.
# export HBASE_CLASSPATH=
export HBASE_CLASSPATH=/usr/local/hadoop/conf

# Tell HBase whether it should manage it’s own instance of Zookeeper or not.
# export HBASE_MANAGES_ZK=true
export HBASE_MANAGES_ZK=true

HBASE_HOME 도 잡아주자

# vi /etc/profile

HADOOP_HOME=/usr/local/hadoop
export HADOOP_HOME
HBASE_HOME=/usr/local/hbase
export HBASE_HOME
JAVA_HOME=/usr/local/jdk1.6.0_31
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin;$HBASE_HOME/bin

# source /etc/profile

Pseudo-distributed 모드로의 설치는 완료되었다.

Configuration Files에 대한 자세한 정보는
http://hbase.apache.org/book/config.files.html

Configuration 예제는
http://hbase.apache.org/book/example_config.html 를 참고

bin 디렉토리는 아래와 같다.

# ll bin
total 112
-rwxr-xr-x 1 root root 6216 Jun 4 11:32 copy_table.rb
-rwxr-xr-x 1 root root 3833 Jun 4 11:32 graceful_stop.sh
-rwxr-xr-x 1 root root 9910 Jun 4 11:32 hbase
-rwxr-xr-x 1 root root 3668 Jun 4 11:32 hbase-config.sh
-rwxr-xr-x 1 root root 5057 Jun 4 11:32 hbase-daemon.sh
-rwxr-xr-x 1 root root 1659 Jun 4 11:32 hbase-daemons.sh
-rwxr-xr-x 1 root root 5432 Jun 4 11:32 hirb.rb
-rwxr-xr-x 1 root root 1697 Jun 4 11:32 local-master-backup.sh
-rwxr-xr-x 1 root root 1751 Jun 4 11:32 local-regionservers.sh
-rwxr-xr-x 1 root root 2328 Jun 4 11:32 master-backup.sh
-rwxr-xr-x 1 root root 13731 Jun 4 11:32 region_mover.rb
-rwxr-xr-x 1 root root 2437 Jun 4 11:32 regionservers.sh
-rwxr-xr-x 1 root root 4546 Jun 4 11:32 region_status.rb
drwxr-xr-x 2 root root 4096 Jun 4 11:32 replication
-rwxr-xr-x 1 root root 4603 Jun 4 11:32 rolling-restart.sh
-rwxr-xr-x 1 root root 1781 Jun 4 11:32 start-hbase.sh
-rwxr-xr-x 1 root root 2448 Jun 4 11:32 stop-hbase.sh
-rwxr-xr-x 1 root root 1924 Jun 4 11:32 zookeepers.sh

HBase를 구동하자

# bin/start-hbase.sh

중지는

# bin/stop-hbase.sh

HBase 쉘을 사용하기 위해서는

# bin/hbase shell
HBase Shell; enter ‘help<RETURN>’ for list of supported commands.
Type “exit<RETURN>” to leave the HBase Shell
Version 0.92.1, r1298924, Fri Mar 9 16:58:34 UTC 2012

hbase(main):001:0>

쉘에 관해 자세한 내용은 http://hbase.apache.org/book/quickstart.html#shell_exercises

설치가 완료되면 HBase 웹 관리 도구로 확인해 볼 수도 있다.

http://localhost:60010

번호 제목 글쓴이 날짜 조회 수
58 oozie가 말하는 start시간은..서버에서 확인되는 시간이 아닙니다. 총관리자 2014.05.14 699
57 우분투 16.04 LTS에 apache2와 tomcat7 연동하여 설치하기 총관리자 2014.05.09 1429
56 ping 안될때.. networking restart 날려주면 잘됨.. 총관리자 2014.05.09 2977
55 insert hbase by hive ... error occured after 5 hours..HMaster가 뜨지 않는 장애에 대한 복구 방법 총관리자 2014.04.29 7129
54 빅데이터 분석을 위한 샘플 빅데이터 파일 다운로드 사이트 총관리자 2014.04.28 3285
53 index생성, 삭제, 활용 총관리자 2014.04.25 1702
52 hbase shell에서 컬럼값 검색하기(SingleColumnValueFilter이용) 총관리자 2014.04.25 2446
51 unique한 값 생성 총관리자 2014.04.25 888
50 sequence한 번호 생성방법 총관리자 2014.04.25 1123
49 ubuntu 12.4에서 eclipse설치후 기동시 library(swt-gtk*)관련 오류 총관리자 2014.04.23 1261
48 Building a Cluster docs 총관리자 2014.04.22 1083
47 sqoop 1.4.4 설치및 테스트 총관리자 2014.04.21 3134
46 The disk drive for uuid= is not ready yet or not present 오류 해결방법 총관리자 2014.04.21 1265
45 os가 windows7인 host pc에서 ubuntu가 os인 guest pc에 접근하기 위한 네트워크설정 총관리자 2014.04.20 725
44 oozie에서 share lib설정시 action type별로 구분하여 넣을것 총관리자 2014.04.18 1195
43 json serde사용법 총관리자 2014.04.17 1140
42 json 값 다루기 총관리자 2014.04.17 1222
41 통계자료 구할수 있는 곳 총관리자 2014.04.16 1964
40 column family삭제시 Column family 'delete' does not exist오류 발생하는 경우 총관리자 2014.04.14 932
39 hive에서 생성된 external table에서 hbase의 table에 값 insert하기 총관리자 2014.04.11 1747

A personal place to organize information learned during the development of such Hadoop, Hive, Hbase, Semantic IoT, etc.
We are open to the required minutes. Please send inquiries to gooper@gooper.com.

위로