Apache HBase™ のインストールとスタンドアロンモードでの実行方法についてです。
HBaseのインストール
公式のインストール方法は Getting Started - Apache HBase を参考にしています。
Apache Download Mirrors からビルド済のバイナリをダウンロードして展開します。
# cd /usr/local/lib/ # curl -LO http://ftp.riken.jp/net/apache/hbase/1.1.3/hbase-1.1.3-bin.tar.gz # tar xzvf hbase-1.1.3-bin.tar.gz # ln -s hbase-1.1.3/ hbase
JDK も必要になるのでインストールしてください。
CentOSにJava(JDK)をRPMでインストール+バージョン変更について
MacでHomebrewを使用して複数バージョンのJava (JDK) をインストールして切り替える方法
サポートされているバージョンは以下を参照。
JDK Support Version - Apache HBase
Hadoop Support Version - Apache HBase
環境設定
コマンドが使いやすいように HBase のディレクトリを環境変数に追加してパスを通しておきます。
# echo 'export HBASE_HOME=/usr/local/lib/hbase' >> /etc/profile.d/hbase.sh # echo 'export PATH="$HBASE_HOME/bin:$PATH"' >> /etc/profile.d/hbase.sh # source /etc/profile # hbase version 2016-02-10 00:01:35,840 INFO [main] util.VersionInfo: HBase 1.1.3 2016-02-10 00:01:35,840 INFO [main] util.VersionInfo: Source code repository git://diocles.local/Volumes/hbase-1.1.3RC1/hbase revision=72bc50f5fafeb105b2139e42bbee3d61ca724989 2016-02-10 00:01:35,840 INFO [main] util.VersionInfo: Compiled by ndimiduk on Sat Jan 16 18:29:00 PST 2016 2016-02-10 00:01:35,840 INFO [main] util.VersionInfo: From source with checksum 72c910d76fba182fa4e3c7e048275ca3
HBase を開始する前に JAVA_HOME を設定してください。設定されていないとエラーになります。
# hbase version +======================================================================+ | Error: JAVA_HOME is not set | +----------------------------------------------------------------------+ | Please download the latest Sun JDK from the Sun Java web site | | > http://www.oracle.com/technetwork/java/javase/downloads | | | | HBase requires Java 1.7 or later. | +======================================================================+
スタンドアロンモードであればローカルのbashrc
や/etc/profile
などに環境変数の設定をしておけばいいのですが、HBase 用の$HBASE_HOME/conf/hbase-env.sh
にも設定しておくことが可能です。
コメントアウトされている箇所を外して編集してください。
# The java implementation to use. Java 1.7+ required. export JAVA_HOME=/usr/java/default
$HBASE_HOME/conf/hbase-site.xml
を編集して HBase と ZooKeeper のデータを書き込むディレクトリを指定してください。スタンドアロンモードなのでローカルファイルシステム上のディレクトリを指定しています。このディレクトリがデータを保存する場所になるので、削除してしまうとテーブルやデータも消えてします。ディレクトリは事前に用意する必要はありません。
<configuration> <property> <name>hbase.rootdir</name> <value>file:///opt/hbase</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/opt/zookeeper</value> </property> </configuration>
ディレクトリを指定しなかった場合、デフォルトでは/tmp/hbase-root
以下に作成されます。
# ll /tmp/hbase-root/ drwxr-xr-x 7 root root 4096 Feb 11 16:22 hbase drwxr-xr-x 3 root root 4096 Feb 11 16:17 local drwxr-xr-x 3 root root 4096 Feb 11 16:22 zookeeper
HBaseの起動
準備ができたら HBase を起動します。$HBASE_HOME/bin/start-hbase.sh
を実行してください。ただし、 シェルの中を見るとわかりますが、完全分散環境でない場合(スタンドアロンモード・擬似分散環境)は ZooKeeper と RegionServer が起動されません。ログはメッセージにもある通り、デフォルトで Hbase ホームディレクトリ以下に出力されます。あと、Java 8から Permanent が無くなってるので警告出てますね。
# start-hbase.sh starting master, logging to /usr/local/lib/hbase/logs/hbase-root-master-localhost.localdomain.out Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0 Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
起動時に HBase と ZooKeeper のディレクトリも作成されます。
# ll /opt/ drwxr-xr-x 7 root root 4096 Feb 10 01:03 hbase drwxr-xr-x 3 root root 4096 Feb 10 01:03 zookeeper
JRuby ベースの対話型シェルである、HBase Shell を実行してみましょう。 HBase を起動する前に実行するとエラーになります。
# hbase shell 2016-02-11 16:56:14,691 WARN [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable HBase Shell; enter 'help<RETURN>' for list of supported commands. Type "exit<RETURN>" to leave the HBase Shell Version 1.1.3, r72bc50f5fafeb105b2139e42bbee3d61ca724989, Sat Jan 16 18:29:00 PST 2016 hbase(main):001:0>
停止するときは$HBASE_HOME/bin/stop-hbase.sh
を実行します。
# stop-hbase.sh stopping hbase...................
CDH5を使用したインストール
CDH5 を使用した HBase のインストール方法についてです。公式との違いも合わせて見ていきます。まずは CDH5のインストール をしてください。
Yum から HBase を依存関係もまとめてインストールします。
# yum install hbase-master
Installing HBase - Cloudera Product Documentation
Starting HBase in Standalone Mode - Cloudera Product Documentation
インストール先や作成されるディレクトリは次の通りです。
設定ファイル関連は/etc/hbase/conf
にあります。JAVA_HOME は設定していなくても内部で設定されるので必須ではなくなりました。
PID ファイルは/var/run/hbase
に、LOG ファイルも/var/log/hbase
に保存されるようになっています。基本的に/usr/lib/hbase
以下にシンボリックリンクが貼られていますのでまとめてアクセスできます。
# find / -type d -name "hbase" /usr/lib/hbase /etc/hbase /var/run/hbase /var/lib/hbase /var/log/hbase
HBase と ZooKeeper のデータディレクトリは同じですがhbase
ユーザーになっています。
# ll /tmp/hbase-hbase/ total 12 drwxr-xr-x 7 hbase hbase 4096 Feb 11 21:38 hbase drwxr-xr-x 3 hbase hbase 4096 Feb 11 19:28 local drwxr-xr-x 3 hbase hbase 4096 Feb 11 19:28 zookeeper
起動する場合はhbase-master
になりました。
# service hbase-master start または # /etc/init.d/hbase-master start starting master, logging to /var/log/hbase/hbase-hbase-master-localhost.localdomain.out Started HBase master daemon (hbase-master): [ OK ]
停止する場合も同様にオプションだけ変更します。
# service hbase-master stop または # /etc/init.d/hbase-master stop stopping master....... Stopped HBase master daemon: [ OK ]
起動してる間にブラウザでhttp://<ip>:60010
を開くと WebUI にアクセスできます。