메뉴 건너뛰기

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

번호 제목 글쓴이 날짜 조회 수
29 HBase shell로 작업하기 구퍼 2013.03.15 5834
28 하둡 분산 파일 시스템을 기반으로 색인하고 검색하기 구퍼 2013.03.15 5573
27 HBASE Client API : 기본 기능 정리 file 구퍼 2013.04.01 3551
26 HBase 설치하기 – Fully-distributed 구퍼 2013.03.12 3548
25 Hbase Shell 명령 정리 구퍼 2013.04.01 3169
24 org.apache.hadoop.hbase.PleaseHoldException: Master is initializing 구퍼 2013.03.15 2668
» HBase 설치하기 – Pseudo-distributed file 구퍼 2013.03.12 2644
22 HBase, BigTable, Cassandra Schema Design file 구퍼 2013.03.15 2506
21 hbase shell에서 컬럼값 검색하기(SingleColumnValueFilter이용) 총관리자 2014.04.25 2446
20 hbase에 필요한 jar들 구퍼 2013.04.01 2100
19 hbase shell 필드 검색 방법 총관리자 2015.05.24 1900
18 HBase 0.98.12(1.2.5) for hadoop2 설치-5대에 완전분산모드 (HDFS HA상테) 총관리자 2015.04.29 1047
17 column family삭제시 Column family 'delete' does not exist오류 발생하는 경우 총관리자 2014.04.14 932
16 Current heap configuration for MemStore and BlockCache exceeds the threshold required for successful cluster operation 총관리자 2017.07.18 892
15 secureCRT에서 backspace키가 작동하지 않는 경우 해결방법 총관리자 2015.05.11 713
14 SASL configuration failed: javax.security.auth.login.LoginException: java.lang.NullPointerException 오류 해결방법 총관리자 2015.04.02 701
13 Flume을 이용한 데이타 수집시 HBase write 성능 튜닝 file 총관리자 2016.10.31 621
12 scan의 startrow, stoprow지정하는 방법 총관리자 2015.04.08 375
11 hbase가 기동시키는 zookeeper에서 받아드리는 ip가 IPv6로 사용되는 경우가 있는데 이를 IPv4로 강제적용하는 방법 총관리자 2015.05.08 267
10 Hadoop의 Datanode를 Decommission하고 나서 HBase의 regionservers파일에 해당 노드명을 지웠는데 여전히 "Dead regionser"로 표시되는 경우 처리 총관리자 2018.01.25 244

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.

위로