自己投資としてチャレンジしている内容を Blog で公開しています。今回は Apache HBase を Hadoop の環境 (Apache Hadoop クラスター OS ubuntu 20.04.1 – 3 Node) にインストールしたいと思います。

————————————
▼1. Apache HBase とは?
————————————
HBase は NoSQL (Not only SQL) データベースです。何十億の列に何十億の行をもつ、非常に大きなテーブルを保持でき、スケーラブルでリアルタイムの読み書きが可能です。
https://hbase.apache.org/
————————————
▼2. Apache HBase のインストール
————————————
— 概要 —
2-1. Apache Hadoop クラスターの作成
2-2. HBase のバイナリーファイルをダウンロード
2-3. バイナリーファイルの解凍
2-4. 環境変数の設定
2-5. hbase-env.sh の設定
2-6. フォルダへの管理者権限の付与
2-7. HBase のインストール状況を確認
2-8. Master ノードのみで hbase-site.xml を編集
2-9. Slave ノードのみで hbase-site.xml を編集
2-10. Masterノードのみで regionservers ファイルを編集
2-11. HBase cluster の起動
————–
2-1. Apache Hadoop クラスターを作成します。
詳細は以前 blog で紹介した下記サイトを参照ください。
Apache Hadoop クラスターのインストール (3 ノード) No.28 – 2021/06
**マシンの構成: 1 台の Master ノード, 2 台の Slave ノードを使います。
2-2. HBase のバイナリーファイルをダウンロードします。
すべてのマシンにて、以下のサイトから Apache HBase をダウンロードします。
wget https://dlcdn.apache.org/hbase/2.5.0/hbase-2.5.0-bin.tar.gz
2-3. バイナリーファイルを解凍します。
ダウンロードした hbase-2.5.0-bin.tar.gz を解凍します。パス名を適宜変更します。
sudo mkdir /usr/local/hbase
sudo tar xzvf hbase-2.5.0-bin.tar.gz -C /user/local/hbase2-4. 環境変数の設定を行います。
すべてのマシンで環境変数の設定を行います。
vi コマンドなどで /home/hadoop/.bashrc の末尾の PATH を編集し、hbase-2.5.0 の bin の PATH を通します。
# HBASE CONFIGS export HBASE_HOME=/usr/local/hbase/hbase-2.5.0 export PATH=$HBASE_HOME/hbase-2.5.0/bin/:$PATH
編集後以下のコマンドで反映し、$PATH の値を確認します。
source ~/.bashrc echo $PATH
2-5. hbase-env.sh の設定を行います。
2-5-1. 準備のためディレクトリを作成します。
sudo mkdir -p /var/hbase/pids2-5-2. hbase-env.sh に設定を追記します。
vi $HBASE_HOME/conf/hbase-env.sh もしくはsudo vi /usr/loca/hbase/hbase-2.5.0/conf/hbase-env.sh
(例) 手元の環境に合わせ JAVA_HOME のパス等変更ください
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-x64/
export HBASE_PID_DIR=/var/hbase/pids
export HBASE_MANAGES_ZK=true
export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"2-6. フォルダへの管理者権限を付与します。
すべてのノードにて、hadoop ユーザーに $HBASE_HOME に対し管理者権限を与えます。
sudo chown -R hadoop $HBASE_HOME
sudo chown -R hadoop /var/hbase/2-7. HBase のインストール状況を確認します。
以下のコマンドを実行し HBASE のインストール状況を確認します。
hbase version2-8. Master ノードのみで hbase-site.xml を編集します。
2-8-1. 準備のためディレクトリを作成します。
sudo mkdir -p /home/hadoop/hbase
sudo mkdir -p /home/hadoop/zookeeper
sudo chown -R hadoop /home/hadoop/hbase
sudo chown -R hadoop /home/hadoop/zookeeper2-8-2. hbase-site.xml に設定の追記します。
sudo vi $HBASE_HOME/conf//hbase-site.xml などで末尾に追記します。
//hbase-site.xml
(一部) hbase.rootdir や hbase.zookeeper.property.dataDir は実際の Hadoop のディレクトリを指定します。ここではインストールの目的でローカルパスを指定しています。
<configuration>
<property>
<name>hbase.rootdir</name>
<value>/home/hadoop/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/hadoop/zookeeper</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>masternode, node1, node2</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<property>
<name>hbase.wal.provider</name>
<value>filesystem</value>
</property>
</configuration>2-9. Slave ノードのみで hbase-site.xml を編集します。
sudo vi $HBASE_HOME/conf//hbase-site.xml などで編集します。
<configuration>
<property>
<name>hbase.rootdir</name>
<value>/home/hadoop/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
</configuration>2-10. Masterノードのみで regionservers ファイルを編集します。
sudo vi $HBASE_HOME/conf/regionservers などで末尾に追記します。
(例) /etc/hosts ファイルをみて、master, slave のノード名を確認し追記します。
masternode
slalvenode1
slavenode22-11. HBase cluster を起動します。
$HBASE_HOME/bin/start-hbase.sh————————————
▼3. HBase shell を実行
————————————
下記 HBASE のドキュメントにあるサンプルを参考に、Master ノードでテーブル作成等を実行します。
Tutorial – Use Apache HBase in Azure HDInsight | Microsoft Learn
— 概要 —
3-1. hbase shell の実行
3-2. status コマンドで 状態を確認
3-3. テーブル作成
3-4. テーブルへ値を挿入
3-5. テーブルを参照
————–
3-1. hbase shell の実行
hbase shell コマンドを実行し HBase インタラクティブ shell を Master ノードで起動します。
3-2. status コマンドで状態を確認
hbase:014:0> status
1 active master, 0 backup masters, 1 servers, 0 dead, 2.0000 average load
hbase:020:0> list
TABLE
0 row(s)
Took 0.0608 seconds
=> []3-3. テーブルを作成します。
hbase:021:0> create 'Contacts','Personal','Office'
2022-10-18 08:48:28,760 INFO [main] client.HBaseAdmin (HBaseAdmin.java:postOperationResult(3591)) - Operation: CREATE, Table Name: default:Contacts, procId: 9 completed
Created table Contacts
Took 1.3250 seconds
=> Hbase::Table - Contacts
3-4. テーブルへ値を挿入します。
put 'Contacts', '1000', 'Personal:Name', 'John Dole'
put 'Contacts', '1000', 'Personal:Phone', '1-425-000-0001'
put 'Contacts', '1000', 'Office:Phone', '1-425-000-0002'
put 'Contacts', '1000', 'Office:Address', '1111 San Gabriel Dr.'3-5. テーブルを参照します。
hbase:039:0> scan 'Contacts'
ROW COLUMN+CELL
1000 column=Office:Address, timestamp=2022-10-18T08:55:14.696, value=1111 San Gar
biel Dr.
1000 column=Office:Phone, timestamp=2022-10-18T08:54:38.377, value=1-425-000-0001
1000 column=Personal:Name, timestamp=2022-10-18T08:51:17.918, value=John Dole
1000 column=Personal:Phone, timestamp=2022-10-18T08:54:03.585, value=1-425-000-00
01
1 row(s)
Took 0.0371 seconds
————————————
▼4. HBase の UI にアクセス
————————————
4-1. HMaster の UI にアクセスします。
4-1-1. 基本情報の確認
Base Status の確認

4-1-2. Replications のタブを表示
Region server の Replications のタブの表示

4-1-3. 作成した Table の詳細表示

————————————
▼5. 参考情報
————————————
(1) https://hbase.apache.org/
(2) https://blog.devgenius.io/setting-up-hbase-in-hadoop-multi-node-cluster-setup-96b6f05d558
(3) linux – HBase Shell – org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet – Stack Overflow
(4) Tutorial – Use Apache HBase in Azure HDInsight | Microsoft Learn
以上です。参考になりましたら幸いです。