Mac OS XにHBase環境を構築する

HBase は列指向、分散データベースです。
スケーラブルで信頼性のあるデータベースを構築することができます。

基本的なこと

  • HBaseには3つのモードがある
    • スタンドアロン(Standalone)
    • 擬似分散モード(Pseudo-Distributed)
    • 完全分散モード(Fully-distributed)

環境

Mac OS X 10.9.4
HBase 0.96.2

インストール

$ brew install hbase

スタンドアロンモード(Standalone mode)

スタンドアロンモードでは、HDFSは使用せず、ローカルのファイルシステムを使います。

Hbaseを起動する

$ start-hbase.sh
starting master, logging to /usr/local/opt/hbase/libexec/logs/hbase-example.out

これでHBaseのインスタンスが実行中になります。

マスタの状態をブラウザで確認してみる

http://localhost:60010/

HBase RESTサーバを起動する

$ hbase rest start

ブラウザで確認する

何もデータがないので真っ白な画面が表示されます。

http://localhost:8080

HBase Shellを起動する

シェル上でインタラクティブにHBaseを操作することができます。

$ hbase shell

hbase(main):001:0> create 'test', 'cf'
0 row(s) in 12.1800 seconds

=> Hbase::Table - test
hbase(main):002:0> list
TABLE
test
1 row(s) in 0.0180 seconds

=> ["test"]
hbase(main):003:0> put 'test', 'row1', 'cf:a', 'value1'
0 row(s) in 0.0800 seconds

hbase(main):004:0> put 'test', 'row2', 'cf:b', 'value2'
0 row(s) in 0.0130 seconds

hbase(main):005:0> put 'test', 'row3', 'cf:c', 'value3'
0 row(s) in 0.0100 seconds

hbase(main):006:0> scan 'test'
ROW                                                          COLUMN+CELL
 row1                                                        column=cf:a, timestamp=1409547674466, value=value1
 row2                                                        column=cf:b, timestamp=1409547676790, value=value2
 row3                                                        column=cf:c, timestamp=1409547679057, value=value3
3 row(s) in 0.0410 seconds

hbase(main):007:0> get 'test', 'row1'
COLUMN                                                       CELL
 cf:a                                                        timestamp=1409547674466, value=value1
1 row(s) in 0.0310 seconds

hbase(main):008:0> disable 'test'
0 row(s) in 5.3660 seconds

hbase(main):009:0> drop 'test'
0 row(s) in 5.3450 seconds

hbase(main):010:0>

HBaseを停止する

$ stop-hbase.sh
stopping hbase..................

擬似分散モード(Pseudo-Distributed mode)

すべてのデーモンが単一のノードで実行されます。

Hadoop環境を構築する

HBase は Hadoop に依存しているので、分散モードではHadoopの環境を用意する必要があります。

Mac OS XにHadoop環境を構築する - kzy52's blog

設定ファイル

$ cd /usr/local/opt/hbase/libexec/conf
# hbase-env.sh

export HBASE_CLASSPATH=/usr/local/opt/hadoop/libexec/etc/hadoop
# hbase-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <!-- 実行中の Hadoop HDFS インスタンスを指定する -->
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://localhost:9000/hbase</value>
    <description>The directory shared by region servers.
    </description>
  </property>

  <!-- 疑似分散モードでの推奨設定 -->
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>
</configuration>
# ~/.zshrc or ~/.bashrc

export HBASE_HOME=/usr/local/opt/hbase/libexec
export PATH=$HBASE_HOME/bin:$PATH
$ source ~/.zshrc

起動する

$ start-hbase.sh

動作確認する

$ hbase shell

Hadoopの管理画面を確認する

http://localhost:60010

以上、スタンドアロン、擬似分散モードの環境構築方法でした。
完全分散モードはまた次回で。