CentOS 6.5でHBaseのスタンドアロンモードを動かす


はじめに

『7つのデータベース7つの世界』でインストールしないといけなかったので、メモしておきます。

環境

  • CentOS 6.5 64bit
  • Java 1.7.0
  • HBase 0.98.5

HBaseインストール

Javaインストール

HBaseはHadoop上で動作するので、Javaが必要になります。

対応するJavaのバージョンはこちらにあります。

http://hbase.apache.org/book/configuration.html#java

とりあえずJDK7いれとけば問題ないようです。

ダウンロードページからダウンロードして、さくっとインストールしてしまいましょう。

http://www.oracle.com/technetwork/jp/java/javase/downloads/jdk7-downloads-1880260.html

$ sudo rpm -ivh jdk-7u67-linux.x64.rpm
$ java -version
java version "1.7.0_67"
Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)

また、環境変数JAVA_HOMEを設定する必要があります。

$ echo "export JAVA_HOME=/usr/java/default" >> ~/.bash_profile
$ source ~/.bash_profile

HBaseダウンロード

ミラーサイトからビルド済みのものをダウンロードして、展開します。

$ wget http://ftp.riken.jp/net/apache/hbase/stable/hbase-0.98.5-hadoop2-bin.tar.gz
$ tar zxvf hbase-0.98.5-hadoop2-bin.tar.gz

設定ファイル編集

設定ファイルを編集します。
ここでは、HBaseが使用するデータディレクトリのみ指定します。
デフォルトでは/tmp以下になっています。

$ cd hbase-0.98.5-hadoop2
$ vi conf/hbase-site.xml
conf/hbase-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>file:///home/nownabe/hbase</value>
  </property>
</configuration>

起動

以上で準備はできたので、コマンドを使って起動します。

$ bin/start-hbase.sh
starting master, logging to /home/nownabe/7db/hbase/hbase-0.98.5-hadoop2/bin/../logs/hbase-nownabe-master-7dbs.nownabe.local.out

確認

HBaseには標準でWebの管理画面が付属しています。
HBaseを起動したマシンのポート60010番にアクセスしてみて、管理画面が表示されればOKです。

使ってみる

HBaseにはJRubyベースの対話シェルが用意されているので、それを使ってみます。
次のコマンドで起動できます。

$ bin/hbase shell
2014-08-17 15:15:23,351 INFO  [main] Configuration.deprecation: hadoop.native.lib is deprecated. Instead, use io.native.lib.available
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 0.98.5-hadoop2, rUnknown, Mon Aug  4 23:58:06 PDT 2014

hbase(main):001:0>

irbですねw
とりあえずversionとかhelpをやってみます。

hbase_shell
> version
0.98.5-hadoop2, rUnknown, Mon Aug  4 23:58:06 PDT 2014
> help
HBase Shell, version 0.98.5-hadoop2, rUnknown, Mon Aug  4 23:58:06 PDT 2014
Type 'help "COMMAND"', (e.g. 'help "get"' -- the quotes are necessary) for help on a specific command.
Commands are grouped. Type 'help "COMMAND_GROUP"', (e.g. 'help "general"') for help on a command group.

...

いっぱいでてきます。

statusでサーバの状態を確認できるみたいです。

hbase_shell
> status
2014-08-17 15:22:19,939 WARN  [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
1 servers, 0 dead, 2.0000 average load

おわりに

以上です。
スタンドアロンで動かすのは意外とさくっとできました。

Hadoopでは完全分散に苦労した覚えがあるんですが、こいつはどうなんでしょうか。