読者です 読者をやめる 読者になる 読者になる

HBaseのインストールと実行方法(スタンドアロンモード)

スポンサーリンク

 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 にアクセスできます。

f:id:tasukujp:20160211220426p:plain