메뉴 건너뛰기

Bigdata, Semantic IoT, Hadoop, NoSQL

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


hbase HBase 설치하기 – Pseudo-distributed

구퍼 2013.03.12 15:17 조회 수 : 2647

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

번호 제목 글쓴이 날짜 조회 수
741 [CDP7.1.7] oozie sqoop action으로 import혹은 export수행시 발생한 오류에 대한 자세한 로그 확인 하는 방법 gooper 2024.04.19 0
740 [Impala] alter table구문수행시 "WARNINGS: Impala does not have READ_WRITE access to path 'hdfs://nameservice1/DATA/Temp/DB/source/table01_ccd'" 발생시 조치 gooper 2024.04.26 0
739 [CDP7.1.7]Hive Replication수행시 Target Cluster에서 Specified catalog.database.table does not exist 오류 gooper 2024.05.08 0
738 [CDP7.1.7, Replication]Encryption Zone내 HDFS파일을 비Encryption Zone으로 HDFS Replication시 User hdfs가 아닌 hadoop으로 수행하는 방법 gooper 2024.01.15 1
737 [CDP7.1.7]Hive Replication수행중 Specified catalog.database.table does not exist : hive.db명.table명 오류 발생시 조치방법 gooper 2024.04.05 1
736 [CDP7.1.7][Replication]Table does not match version in getMetastore(). Table view original text mismatch gooper 2024.01.02 3
735 ./gradlew :composeDown 및 ./gradlew :composeUp 를 성공했을때의 메세지 gooper 2023.02.20 6
734 호출 url현황 gooper 2023.02.21 6
733 [vue storefrontui]외부 API통합하기 참고 문서 총관리자 2022.02.09 7
732 [Cloudera Agent] Metadata-Plugin throttling_logger INFO (713 skipped) Unable to send data to nav server. Will try again. gooper 2022.05.16 7
731 [CDP7.1.7, Hive Replication]Hive Replication진행중 "The following columns have types incompatible with the existing columns in their respective positions " 오류 gooper 2023.12.27 7
730 [CDP7.1.7]Oozie job에서 ERROR: Kudu error(s) reported, first error: Timed out: Failed to write batch of 774 ops to tablet 8003f9a064bf4be5890a178439b2ba91가 발생하면서 쿼리가 실패하는 경우 gooper 2024.01.05 7
729 eclipse editor 설정방법 총관리자 2022.02.01 10
728 oozie의 sqoop action수행시 ooize:launcher의 applicationId를 이용하여 oozie:action의 applicationId및 관련 로그를 찾는 방법 gooper 2023.07.26 10
727 주문 생성 데이터 예시 총관리자 2022.04.30 11
726 주문히스토리 조회 총관리자 2022.04.30 11
725 [bitbucket] 2022년 3월 2일 부터 git 작업시 기존에 사용하던 비빌번호를 사용할 수 없도록 변경되었다. 총관리자 2022.04.30 11
724 [EncryptionZone]User:testuser not allowed to do "DECRYPT_EEK" on 'testkey' gooper 2023.06.29 11
723 [CDP7.1.7]Encryption Zone내부/외부 간 데이터 이동(mv,cp)및 CTAS, INSERT SQL시 오류(can't be moved into an encryption zone, can't be moved from an encryption zone) gooper 2023.11.14 11
722 [CDP7.1.7]impala-shell수행시 간헐적으로 "-k requires a valid kerberos ticket but no valid kerberos ticket found." 오류 gooper 2023.11.16 11

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.

위로