HBaseをクラスタ構成で構築してみる

サーバー情報

Hadoop HDFSサーバー: ホスト名 dfserver (192.168.1.1)
HBase Master: ホスト名 test1 (192.168.1.2)
HBase Slave: ホスト名 test2 (192.168.1.3)

上記のホスト名の設定をHBase関連サーバーに行っておく。又、HDFSサーバーは外部からアクセスできるようにバインドするアドレス及びポート開放を行っておく

hbase-site.xmlを設定(マスター側)

<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://dfserver:9000/hbase</value>
    </property>
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>192.168.1.2,192.168.1.3</value>
    </property>
</configuration>

hbase.zookeeper.quorumを指定しておかないとzookeeperのポートが開放されないので必ず指定する。これにはregionserverで管理するサーバーを指定する

regionserverを作成(マスター側)

192.168.1.2
192.168.1.3

マスター及びスレーブサーバーのIPを列挙しておく。この設定はマスター側のみで行う

hbase-site.xmlを作成(スレーブ側)

<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://dfserver:9000/hbase</value>
    </property>
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
</configuration>

動作確認

マスターサーバー側でHBaseを起動すると指定したHDFSにディレクトリが作成され、マスター・スレーブサーバーに必要なサーバーアプリケーションが起動される。jpsコマンドで確認すると

マスター側

HMaster
HRegionServer
HQuorumPeer

スレーブ側

HRegionServer
HQuorumPeer

というようになっているのを確認する。その後、マスターサーバー側でhbase shellで

create "smaples","score"

# 表示されるか確認
list

を実行した後にスレーブサーバー側でlistコマンドを実行するとマスター側で行った操作がスレーブ側でも問題無く反映されている事を確認する