1.2. クイックスタートガイド

このガイドでは、ローカルファイルシステムを使うスタンドアロンの HBase インスタンスをセットアップする方法について説明します。具体的には、HBase Shell を使ったテーブルの作成、行の挿入、クリーンアップ、スタンドアロン HBase インスタンスのシャットダウンを実行します。以下で説明する操作の所要時間は (ダウンロードにかかる時間は除いて) 10 分足らずです。

1.2.1. 最新の安定版リリースのダウンロードと展開

Apache ダウンロードミラーサイトの一覧で適切なダウンロードサイトを選択します。通常は、一番上に表示されるリンクをクリックします。HBase Releases のページが表示されます。stable という名前のフォルダをクリックし、次に hbase-0.91.0-SNAPSHOT.tar.gz のように .tar.gz で終わる名前のファイルをローカルファイルシステムにダウンロードします。

次の要領で、ダウンロードしたファイルを解凍・展開し、展開後に作成されたディレクトリに移動します。

$ tar xfz hbase-0.91.0-SNAPSHOT.tar.gz
$ cd hbase-0.91.0-SNAPSHOT

これで HBase を起動する準備は整いました。ただし、HBase を起動する前に、必要に応じて conf/hbase-site.xml を編集し、HBase の書き込み先のディレクトリを hbase.rootdir で設定しておきます。


<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>file:///DIRECTORY/hbase</value>
  </property>
</configuration>

上の DIRECTORY の部分を、HBase がデータを格納するために使うディレクトリへのパスで置き換えてください。デフォルトでは、hbase.rootdir/tmp/hbase-${user.name} に設定されているので、サーバーを再起動するとすべてのデータが失われます (ほとんどのオペレーティングシステムは再起動時に /tmp の内容を消去します)。

1.2.2. HBase の起動

次のコマンドを実行し、HBase を起動します。

$ ./bin/start-hbase.sh
starting Master, logging to logs/hbase-user-master-example.org.out

これで、スタンドアロンの HBase のインスタンスが実行中になります。スタンドアロンモードでは、HBase はすべてのデーモン、すなわち HBase デーモンと ZooKeeper デーモンを 1 つの JVM 内で実行します。HBase のログは logs サブディレクトリにあります。HBase の起動時に問題があったら、ログを参照してください。

java はインストールされていますか?

上で説明した手順は、バージョン 1.6 の Oracle java がコンピュータにインストールされていて、java プログラムがパス内で見つかること、すなわち「java」と入力した時に、java プログラムのオプションが表示されることを前提にしています (HBase では java 6 が必要です)。java プログラムのオプションが表示されない場合、HBase は起動しません。この場合は、java をインストールし、conf/hbase-env.sh を編集して、JAVA_HOME の行をアンコメントし、java のインストール先を指すようにします。その後、上で説明した HBase の起動手順をやり直してください。

1.2.3. Shell による操作

HBase Shell を介して、実行中の HBase に接続します。

$ ./bin/hbase shell
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version: 0.90.0, r1001068, Fri Sep 24 13:55:42 PDT 2010

hbase(main):001:0> 

help」と入力して <RETURN> キーを押し、シェルのコマンドとオプションの一覧を表示します。help コマンドの出力のうち、少なくとも最後のいくつかのパラグラフには目を通し、HBase Shell での変数やコマンドの引数の入力の方法、特にテーブル名、行、列などを引用符でどのように囲まなければならないかについて、しっかりと理解しておきましょう。

cf という名前の列ファミリを 1 つ持つ test という名前のテーブルを作成します。テーブルが作成されたことを確認するためにすべてのテーブルを表示し、次にいくつか値を挿入します。

hbase(main):003:0> create 'test', 'cf'
0 row(s) in 1.2200 seconds
hbase(main):003:0> list 'table'
test
1 row(s) in 0.0550 seconds
hbase(main):004:0> put 'test', 'row1', 'cf:a', 'value1'
0 row(s) in 0.0560 seconds
hbase(main):005:0> put 'test', 'row2', 'cf:b', 'value2'
0 row(s) in 0.0370 seconds
hbase(main):006:0> put 'test', 'row3', 'cf:c', 'value3'
0 row(s) in 0.0450 seconds

ここでは、1 回に 1 つずつ、3 つの値を挿入しています。最初の操作では、row1 に列 cf:a を値 value1 で挿入しています。HBase の列は、列ファミリプリフィックス (現在の例では cf) とそれに続くコロン (:)、さらに列修飾子サフィックス (現在の例では a) から構成されます。

実際にデータが挿入されていることを確認します。

次のように入力してテーブルをスキャンします。

hbase(main):007:0> scan 'test'
ROW        COLUMN+CELL
row1       column=cf:a, timestamp=1288380727188, value=value1
row2       column=cf:b, timestamp=1288380738440, value=value2
row3       column=cf:c, timestamp=1288380747365, value=value3
3 row(s) in 0.0590 seconds

1 行だけを取得します。

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

テーブルを無効にして削除します。これまでに行った操作の結果はすべてクリーンアップされます。

hbase(main):012:0> disable 'test'
0 row(s) in 1.0930 seconds
hbase(main):013:0> drop 'test'
0 row(s) in 0.0770 seconds 

「exit」と入力して Shell を終了します。

hbase(main):014:0> exit

1.2.4. HBase の停止

HBase のインスタンスを停止するには、停止スクリプトを実行します。

$ ./bin/stop-hbase.sh
stopping hbase...............

1.2.5. 次は

ここで説明したスタンドアロンモードでのセットアップが適しているのは、テストや試験を行う場合だけです。次の「通常のスタートガイド」では、スタンドアロン以外の HBase の実行モードについて詳しく取り上げ、分散 HBase をデプロイするのに必要なものや重要な設定について説明し ます。