본문 바로가기
NoSQL/HBase

HBase 완전-분산 (Full Distributed) 방식 설치

by Lohen 2016. 2. 5.

 출처: http://crazia.tistory.com/entry/HBase-%EB%88%84%EA%B5%AC%EB%82%98-%EB%94%B0%EB%9D%BC%ED%95%A0-%EC%88%98-%EC%9E%88%EB%8A%94-HBase-%EC%99%84%EC%A0%84-%EB%B6%84%EC%82%B0-Full-Distributed-%EB%B0%A9%EC%8B%9D-%EC%84%A4%EC%B9%98

 

HBase 는 가-분산 방식 까지 설치되어 있다고 가정하고 Hadoop 은 완전-분산 방식까지 설치되어 있다고 가정합니다. (지난 포스트들을 찾아보세요) 


4대의 서버에 걸쳐서 HBase 클러스터링 설정을 하는 것으로 하겠습니다. 

nobody1 - HMaster
nobody2 - RegionServer
nobody3 - RegionServer
nobody4 - RegionServer






이제 설정파일들을 검토하겠습니다.

conf/hbase-env.sh

# export JAVA_HOME=/usr/java/jdk1.6.0/
export JAVA_HOME=/usr/lib/jvm/java-6-openjdk


를 추가해주고 (아마 되어 있을 것입니다)

# export HBASE_CLASSPATH=
export HADOOP_HOME=/home/hadoop/work/hadoop-1.0.1
export HBASE_CLASSPATH=${HBASE_CLASSPATH}:$HADOOP_HOME/conf


를 추가해줍니다.

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


이제 주키퍼를 사용한다고 설정해야 하는 부분입니다.

conf/hbase-site.xml

 1    <configuration> 2    <property> 3        <name>hbase.rootdir</name> 4        <value>hdfs://nobody1:9000/hbase</value> 5    </property> 6 7    <property> 8        <name>hbase.cluster.distributed</name> 9        <value>true</value>10    </property>1112    <property>13        <name>dfs.replication</name>14        <value>3</value>15    </property>1617    <property>18        <name>hbase.zookeeper.quorum</name>19        <value>nobody1,nobody2</value>20    </property>2122    <property>23      <name>hbase.zookeeper.property.dataDir</name>24      <value>/home/hadoop/work/hbase-0.92.1/zookeeper</value>25      <description>Property from ZooKeeper's config zoo.cfg.26        The directory where the snapshot is stored.27      </description>28    </property>29   </configuration>

hbase.rootdir 은 하둡의 네임노드뒤에 /hbase 를 적어줬습니다.
hbase.cluster.distributed 는 클러스터링을 할 것인지에 관한 것입니다. true 로 적어줬습니다.
dfs.replication 은 복제셋을 얼마나 가져갈 것인지에 관한 설정인데 3 으로 정해줬습니다.

zookeeper
 관련 설정은 꼭 해줘야 하는 부분입니다.
hbase.zookeeper.quorum 은 클라이언트가 접속해야 하는 주키퍼를 설정해줄 수가 있습니다. nobody1 과 nobody2 에 주키퍼가 떠 있어서 클라이언트의 접속을 받을 것이라는 설정입니다.

conf/regionservers

nobody1
nobody2
nobody3
nobody4



이것은 실제적으로 데이타가 저장이 되는 리젼 서버(Region Server)들이 저장되는 곳입니다. 여기에 쓰여져 있는대로 리젼서버들이 구동됩니다.

이제 설정이 끝나고 설정을 복사해 줄 차례입니다.

$ cd ~/work/hbase-0.92.1
$ rsync -av . hadoop@nobody2:/home/hadoop/work/hbase-0.92.1/
$ rsync -av . hadoop@nobody3:/home/hadoop/work/hbase-0.92.1/
$ rsync -av . hadoop@nobody4:/home/hadoop/work/hbase-0.92.1/


이제 다 설정 되었으니 하둡을 먼저 구동시키고 HBase 를 구동시킵니다.

$ cd ~/work/hbase-0.92.1
$ bin/start-hbase.sh


반응형