Hadoop 0.20.2에 Hbase 0.20.6를 설치 해보자 ( fully-distributed setup )

2011. 2. 28. 11:16프로그래밍일반

Hadoop 0.20.2에 Hbase 0.20.6를 설치 해보자

사용환경
- Hadoop 0.20.2
- Hbase 0.20.6
- ext library : tableIndexed library for hbase0.20.6
- fully-distributed setup

1. hbase 설치
   http://hbase.apache.org 에서 0.20.6 버전을 다운로드 받아 설치한다.
   (현재 0.90.x가 나오고 있지만 아직 rc버전이다.)
   * 명심할것은 Hbase의 위치는 마스터또는 슬레이브서버 모두 동일해야 한다.
     서로 동일한 패스에 위치해야한다는 것을 명심하자.

2. /etc/host에 다음을 등록하자.
   * localhost에 127.0.0.1 같이 설정하지 마라
   * hostname에 - 같은 것을 쓰지마라. 인식을 할수 없다.
                              http://en.wikipedia.org/wiki/Hostname

192.168.0.202 localhost
192.168.0.203 hadoop.master
192.168.0.203 hadoop.slave

192.168.0.202 hbase.master
192.168.0.203 hbase.slave

    - hadoop.master : hadoop 마스터 서버의 위치
    - hadoop.slave : hadoop 슬레이브 서버의 위치

    - hbase.master : hbase 마스터 서버의 위치
    - hbase.slave: hbase 슬레이브 서버의 위치


3. 환경 설정 (마스터, 슬레이브 서버 공통)
 * hbase_env.sh 설정에 추가
  - jdk home path 설정 추가
 

   export JAVA_HOME=/home/app/java6.0


  - table indexed 라이브러리를 사용하는 사람은 아래를 추가한다.
    (해당 외부 라이브러리 필요없으면 아래작업이 필요없다.)

export HBASE_HOME=/home/app/hbase-0.20.6
export EXT_CLASSPATH=${HBASE_HOME}/lib/hbase-0.20.6-transactional.jar;
export HBASE_CLASSPATH=${EXT_CLASSPATH}


4. hbase-site 설정( Master, Slave 서버 공통)

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
<!-- Hadoop 의 Master 서버접속 url을 기록한다. -->
<property>
  <name>hbase.rootdir</name>
  <value>hdfs://hadoop.master:9100/hbase</value>
</property>

<!-- Hbase의 마스터 서버 위치를 설정한다. 현재 이서버가 해당된다. -->
<property>
  <name>hbase.master</name>
  <value>hbase.master:60000</value>
</property>

<property>
  <name>hbase.cluster.distributed</name>
  <value>true</value>
  <description>The mode the cluster will be in. Possible values are
    false: standalone and pseudo-distributed setups with managed Zookeeper
    true: fully-distributed with unmanaged Zookeeper Quorum (see hbase-env.sh)
  </description>
</property>
<!-- 아래는 indexed 외부 라이브러리가 필요한 사람만 추가로 등록한다. -->

<!--  Secondary Indexes in Habase. -->
        <property>
                <name>hbase.regionserver.class</name>
                <value>org.apache.hadoop.hbase.ipc.IndexedRegionInterface</value>
        </property>

        <property>
                <name>hbase.regionserver.impl</name>
                <value>org.apache.hadoop.hbase.regionserver.tableindexed.IndexedRegionServer</value>
        </property>


</configuration>



5. 마스터 서버에 추가 설정 (슬레이브 서버는 하지 않는다.)
   conf 폴더에 regionservers 파일을 생성하고
    hbase.master
    hbase.slave
   를 등록한다.

6. 서비스 실행 
  이제 설정이 모두 완료되었다.
마스터 서버에서 ./start-hbase.sh 를 하면 아래와 같이 자동적으로 Slave 서버까지 자동으로 구동될것이다. (마스터 서버에서만 실행하는것을 명심하자)

   * 마스터 서버에서 
     ./start-hbase.sh

    # jps로 확인시 아래와 같은 서비스가 구동되어 있으면 성공이다.
    - 마스터
      HRegionServer
      HQuorumPeer

     - 슬레이브
      HRegionServer
      
  
추가)
Hbase가 비록 BigTable같이 좋은 아키텍쳐를 지니고 있지만, 사용성 면에서는 많이 떨어지더군요. 그래서
http://code.google.com/p/hbase-jdo/  같은 오픈소스 프로젝트를 만들어 진행중입니다.  도움이 되었으면 하는군요. 이 프로젝트안에 있는 툴로 Hbase, Hadoop을 쉽게 조회 해볼 수 있으니 한번 사용해 보세요.