はじめに
『7つのデータベース7つの世界』でインストールしないといけなかったので、メモしておきます。
環境
- CentOS 6.5 64bit
- Java 1.7.0
- HBase 0.98.5
HBaseインストール
Javaインストール
HBaseはHadoop上で動作するので、Javaが必要になります。
対応する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
<?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
をやってみます。
> 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
でサーバの状態を確認できるみたいです。
> 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では完全分散に苦労した覚えがあるんですが、こいつはどうなんでしょうか。