메뉴 건너뛰기

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

번호 제목 글쓴이 날짜 조회 수
420 [Impala jdbc]CDP7.1.7환경에서 java프로그램을 이용하여 kerberized impala cluster에 접근하여 SQL을 수행하는 방법 gooper 2023.08.22 59
419 [Hue metadata]Oracle에 있는 Hue 메타정보 테이블을 이용하여 coordinator와 workflow관계 목록을 추출하는 방법 gooper 2023.08.22 15
418 [Hue admin]Add/Sync LDAP user, Sync LDAP users/groups 버튼 기능 설명 gooper 2023.08.09 15
417 oozie의 sqoop action수행시 ooize:launcher의 applicationId를 이용하여 oozie:action의 applicationId및 관련 로그를 찾는 방법 gooper 2023.07.26 10
416 [CDP7.1.6,HDFS]HDFS파일을 삭제하고 Trash비움이 완료된후에도 HDFS 공간을 차지하고 있는 경우 확인/조치 방법 gooper 2023.07.17 16
415 [Encryption Zone]Encryption Zone에 생성된 table을 select할때 HDFS /tmp/zone1에 대한 권한이 없는 경우 gooper 2023.06.29 12
414 [EncryptionZone]User:testuser not allowed to do "DECRYPT_EEK" on 'testkey' gooper 2023.06.29 11
413 [HDFS]Encryption Zone에 생성된 테이블 조회시 Failed to open HDFS file hdfs://nameservice1/tmp/zone1/sec_test_file.txt Error(255): Unknown error 255 Root cause: AuthorizationException: User:impala not allowd to do 'DECRYPT_EEK' on 'testkey' gooper 2023.06.29 53
412 [Hadoop Encryption] Encryption Zone 생성/설정시 User:hadoop not allowed to do 'DECRYPT_EEK' ON 'testkey' 오류 발생 조치 사항 gooper 2023.06.28 18
411 [KTS Cluster의 Key Trustee Server]self-signed 인증서 발급및 설정 방법 gooper 2023.06.27 29
410 [Ranger]RangerAdminRESTClient Error gertting pplicies; Received NULL response!!, secureMode=true, user=rangerkms/node01.gooper.com@ GOOPER.COM (auth:KERBEROS), serviceName=cm_kms gooper 2023.06.27 24
409 [CDP7.1.3]Ranger WebUI에서 Error! Connection refused: Please check the KMS provider URL and whether the Ranager KMS is running발생시 조치 방법 gooper 2023.06.07 19
408 [impala]insert into db명.table명 select a, b from db명.table명 쿼리 수행시 "Memory limit exceeded: Failed to allocate memory for Parquet page index"오류 조치 방법 gooper 2023.05.31 22
407 Impala Admission Control 설정시 쿼리가 사용하는 메모리 사용량 판단 방법 gooper 2023.05.19 93
406 [Atlas Server]org.apache.hadoop.hbase.security.AccessDeniedException: Insufficient permissions (user=atlas/node01.gooper.com@GOOPER.COM, scope=default:atlas_janus, params=[table=default:atlas_janus,], action-CREATE)] gooper 2023.05.15 66
405 [Ranger]계정에 admin권한(grant, create등)의 권한 부여 방법 gooper 2023.04.18 49
404 [DataNode]org.apache.hadoop.security.KerberosAuthException: failure to login: for principal: hdfs/datanode03@GOOPER.COM from keytab hdfs.keytab오류 gooper 2023.04.18 4614
403 [KUDU] kudu tablet server여러가지 원인에 의해서 corrupted상태가 된 경우 복구방법 gooper 2023.03.28 37
402 Hadoop Clsuter에 이미 포함된 host의 hostname변경시 처리 절차 gooper 2023.03.24 15
401 [Kudu]ERROR: Unable to advance iterator for node with id '2' for Kudu table 'impala::core.pm0_abdasubjct': Network error: recv error from unknown peer: Transport endpoint is not connected (error 107) gooper 2023.03.16 536

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.

위로