메뉴 건너뛰기

Cloudera, BigData, Semantic IoT, Hadoop, NoSQL

Cloudera CDH/CDP 및 Hadoop EcoSystem, Semantic IoT등의 개발/운영 기술을 정리합니다. gooper@gooper.com로 문의 주세요.


hbase HBase 설치하기 – Pseudo-distributed

구퍼 2013.03.12 15:17 조회 수 : 2892

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

번호 제목 날짜 조회 수
70 centos 6에서 mariadb 5.1 to 10.0 으로 upgrade 2016.11.01 265
69 Flume을 이용한 데이타 수집시 HBase write 성능 튜닝 file 2016.10.31 806
68 AIX 7.1에 MariaDB 10.2 소스 설치 2016.09.24 2691
67 ./hadoop-daemon.sh start namenode로 namenode기동시 EditLog의 custerId, namespaceId가 달라서 발생하는 오류 해결방법 2016.09.24 289
66 hadoop 어플리케이션을 사용하는 사용자 변경시 바꿔줘야 하는 부분 2016.09.23 818
65 format된 namenode를 다른 서버에서 다시 format했을때 오류내용 2016.09.22 326
64 AIX 7.1에 Hadoop설치(정리중#2) 2016.09.20 375
63 AIX 7.1에 Hadoop설치(정리중) 2016.09.12 889
62 bin/start-hbase.sh실행시 org.apache.hadoop.hbase.util.FileSystemVersionException: HBase file layout needs to be upgraded오류가 발생하면 조치사항 2016.08.01 535
61 hadoop클러스터를 구성하던 서버중 HA를 담당하는 서버의 hostname등이 변경되어 문제가 발생했을때 조치사항 2016.07.29 447
60 Journal Storage Directory /data/hadoop/journal/data/mycluster not formatted 오류시 조치사항 2016.07.29 1699
59 org.apache.hadoop.hbase.ClockOutOfSyncException: org.apache.hadoop.hbase.ClockOutOfSyncException 오류시 조치사항 2016.07.14 241
58 Job이 끝난 log을 볼수 있도록 설정하기 2016.05.30 1034
57 Master rejected startup because clock is out of sync 오류 해결방법 2016.05.03 234
56 Hadoop 완벽 가이드 정리된 링크 2016.04.19 830
55 bin/cassandra -f -R로 startup할때 NullPointerException오류가 나면 조치할 내용 2016.04.14 423
54 Cassandra 3.4(3.10) 설치/설정 (5대로 clustering) 2016.04.11 986
53 Incompatible clusterIDs오류 원인및 해결방법 2016.04.01 645
52 namenode오류 복구시 사용하는 명령 2016.04.01 580
51 "java.net.NoRouteToHostException: 호스트로 갈 루트가 없음" 오류시 확인및 조치할 사항 2016.04.01 3336
위로