Cygwinを利用してWindowsにHBaseをインストール

HBaseは列指向DBMSで大規模分散処理に特化しているDBMSです。
大規模なデータ容量になってもパフォーマンスの劣化がおきにくいのが特徴で、
次世代のデータベースとして注目されています。

ここではHBaseをWindowsXPマシンにインストールする方法について記述します。
RDBMSとHBaseの違いをお手軽に?確認したいという方にお勧めです。

環境

HBaseをWindowsで利用するにはJDK6/Cygwin/SSHサービスが必要となります。
環境は2010-02-01時点の最新バイナリを利用しました。

Cygwinインストール

ここではCygwinのRootとLocal Packageを以下のように設定する前提で書きます。

それではCygwinをインストールしてみます。

  1. Local Packageディレクトリ(C:\cygwin\setup)を作成します。
  2. http://cygwin.com/setup.exeをC:\cygwin\setupディレクトリへダウンロードします。
  3. Administrator権限を持つユーザでsetup.exeをダブルクリックしインストールを開始します。
    1. "Choose A Download Source"ではInstall from Intarnetを選択します。
    2. "Select Root Install Directory"のRoot DirectoryではC:\cygwin\rootを設定します。
    3. "Select Local Package Directory"のLocal Package DirectoryではC:\cygwin\setupを設定します。
    4. "Select Your Internet Connection"ではDirect Connectionを選択します。
    5. "Choose A Download Site"ではjpドメインのサイトを選択します。
    6. "Select Packages"では追加パッケージを選択せずにインストールを行います。
    7. "Create Icons"では必要に応じてチェックを行いインストールを完了します。
  4. システム環境変数CYGWIN_HOMEを作成しC:\cygwin\rootを設定します。
  5. システム環境変数PATHに%CYGWIN_HOME%\binを追加します。
  6. Cygwinのインストールを完了するためにOSをリブートします。

SSHインストール

HBase(Hadoop)はコマンドの実行などにSSHによる通信を行います。
今回はCygwinを利用してSSHサービスをインストールします。

  1. 再度Cygwinのsetup.exeをダブルクリックしSSHのインストールを開始します。
  2. "Select Packages"が出るまでNextボタンを押下します。
  3. "Select Packages"で以下パッケージを選択しインストールします。
    1. Net=>OpenSSH
    2. Net=>tcp_wrappers
    3. Utils=>diffutils
    4. Libs=>zlib

SSH設定

  1. Cygwinを起動します。
  2. Cygwinで以下コマンドを実行し環境の適正化を行います。
    1. chmod +r /etc/passwd
    2. chmod u+w /etc/passwd
    3. chmod +r /etc/group
    4. chmod u+w /etc/group
    5. chmod 755 /var
  3. Cygwinで以下コマンドを実行しsshdの設定ファイルを作成します。
    • ssh-host-config -y
  4. Cygwinで以下コマンドを実行しsshサービスを起動します。
  5. Cygwinで以下コマンドを実行しWindowsのアカウントをCygwinに同期します。
    1. mkpasswd -cl > /etc/passwd
    2. mkgroup -local > /etc/group
  6. Cygwinで必要に応じて以下コマンドを実行しノーパスワードで接続できるようにします。
    1. ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
    2. cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
    3. chmod 600 ~/.ssh/authorized_keys
  7. 念のため以下コマンドで動作確認します。
    1. 新しくCygwin端末を開きます。
    2. Cygwinで以下コマンドを実行しsshログインします。
    3. Cygwinで以下コマンドを実行しCygwinを終了します。
      • exit

Javaインストール

http://java.sun.com/javase/ja/6/download.htmlからJDK1.6をダウンロードしてインストールします。
ここではJavaを以下のディレクトリにインストールします。

Java設定

  1. Cygwinからアクセスしやすいように/usr/local/にシンボリックリンクをはります。
    • ln -s /cygdrive/c/java/jdk1.6.0_18 /usr/local/jdk1.6.0_18
    • Program File以下にインストールした場合
      • ln -s /cygdrive/c/Program\ Files/Java/ /usr/local/
  2. 念のため以下コマンドで動作確認をします。
    1. cd /usr/local/jdk1.6.0_18
    2. ./bin/java -version

HBaseインストール

  1. http://www.apache.org/dyn/closer.cgi/hadoop/hbase/からHBaseをダウンロードします。
  2. hbase-0.20.3.tar.gzを解凍ソフトを使って解凍します。
  3. 解凍したファイルをC:\cygwin\root\usr\local\以下に配置し、Cygwinから/usr/local/hbase-で接続できるようにします。

HBase設定

  1. /uar/local/hbase-0.20.3/conf/hbase-env.shに追記します。
    1. export JAVA_HOME=/usr/local/jdk1.6.0_18
    2. export HBASE_IDENT_STRING=$HOSTNAME
  2. /usr/local/hbase-0.20.3/conf/hbase-default.xmlを編集します。
    1. hbase.rootdirにfile:///C:/cygwin/root/tmp/hbase/data
    2. hbase.tmp.dirにC:/cygwin/root/tmp/hbase/tmp
    3. hbase.zookeeper.quorumに127.0.0.1
  3. Cygwinで以下コマンドを実行しhbase.rootdirとhbase.tmp.dirのディレクトリを作成します。
    1. mkdir -p /tmp/hbase/data
    2. mkdir -p /tmp/hbase/tmp
    3. chmod 777 /tmp/hbase/data
    4. chmod 777 /tmp/hbase/tmp

HBase動作テスト

  1. Cygwinを起動します。
  2. Cygwinで以下コマンドを実行しHBaseを起動します。
    1. cd /usr/local/hbase-0.20.3/
    2. ./bin/start-hbase.sh
  3. Cygwinで以下コマンドを実行しhbase shellを起動します。
    • ./bin/hbase shell
  4. hbase shellで以下コマンドを実行しコマンドを確認します。
    • help
  5. hbase shellで以下コマンドを実行しテーブルを作成します。
    • create 'test', 'data'
  6. hbase shellで以下コマンドを実行しテーブルを確認します。
    • list
  7. hbase shellで以下コマンドを実行しデータを挿入します。
    1. put 'test', 'row1', 'data:1', 'value1'
    2. put 'test', 'row2', 'data:2', 'value2'
    3. put 'test', 'row3', 'data:3', 'value3'
  8. hbase shellで以下コマンドを実行しデータが表示されればテスト成功です。
    • scan 'test'
  9. hbase shellで以下コマンドを実行しテーブルを削除します。
    1. disable 'test'
    2. drop 'test'
  10. hbase shellで以下コマンドを実行しhbase shellを終了します。
    • exit
  11. Cygwinで以下コマンドを実行しHBaseを停止します。
    1. cd /usr/local/hbase-0.20.3/
    2. ./bin/stop-hbase.sh

HBase REST動作テスト

  1. Cygwinを起動します。
  2. Cygwinで以下コマンドを実行しHBaseを起動します。
    1. cd /usr/local/hbase-0.20.3/
    2. ./bin/start-hbase.sh
  3. Cygwinで以下コマンドを実行しhbase shellを起動します。
    • ./bin/hbase shell
  4. hbase shellで以下コマンドを実行しテーブルを作成します。
    • create 'test', 'data'
  5. hbase shellで以下コマンドを実行しデータを挿入します。
    1. put 'test', 'row1', 'data:1', 'value1'
    2. put 'test', 'row2', 'data:2', 'value2'
    3. put 'test', 'row3', 'data:3', 'value3'
  6. hbase shellで以下コマンドを実行しhbase shellを終了します。
    • exit
  7. Cygwinで以下コマンドを実行しHBaseのRESTサービスを起動します。
    • ./bin/hbase-daemon.sh start rest
  8. ブラウザで以下のURLに接続し作成したtestテーブルが表示されればテスト成功です。
  9. CygwinでC以下コマンドを実行しHBaseのRESTサービスを停止します。
    • ./bin/hbase-daemon.sh stop rest
  10. Cygwinで以下コマンドを実行しHBaseを停止します。
    • ./bin/stop-hbase.sh

最後に

これでHBaseで遊べる環境は整いました。

Hadoopに関する情報がまだまだインターネットには少ないので
皆さんも色々試して情報を共有していただければと思います。。