Apache HBase インストール 3 ノード (Ubuntu 20.04) No.61

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

HBaseLogo

————————————
▼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/hbase

2-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/pids

2-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 version

2-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/zookeeper

2-8-2. hbase-site.xml に設定の追記します。
sudo vi $HBASE_HOME/conf//hbase-site.xml などで末尾に追記します。

//hbase-site.xml 
(一部) hbase.rootdirhbase.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
slavenode2

2-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 の確認

ShowHBaseStatus

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

ShowHBaseRegionServerReplications

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

ShowHBaseTables

————————————
▼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

以上です。参考になりましたら幸いです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です