HBaseのインストール方法 Ubuntu: ステップバイステップガイド
⚡ スマートサマリー
HBaseのインストール Ubuntu スタンドアロン、擬似分散、完全分散の3つのモードで動作し、リリースtarballのダウンロード方法、hbase-env.shとhbase-site.xmlの編集方法、デーモンの起動方法、一般的な起動エラーの修正方法について説明しています。

Apache HBaseは分散型で、 列指向データベース Hadoop分散ファイルシステム(HDFS)上で動作します。開始する前に、サポートされていることを確認してください。 Java ランタイムがインストールされ、JAVA_HOMEが設定されていること。擬似分散モードと完全分散モードでは、動作する Hadoopの インストール。
Apache HBase インストール モード
Apache HBase は XNUMX つのモードでインストールできます。 これらのモードの特徴は次のとおりです。
1) スタンドアロン モードのインストール (Hadoop システムに依存しない)
- これはHBaseのデフォルトモードです。
- ローカルファイルシステムに対して実行されます。
- 使用しません Hadoop HDFS.
- HMasterデーモンのみが実行可能です。
- 本番環境での使用は推奨しません。
- 単一のJVM上で動作します。
2) 擬似分散モードインストール (シングルノード Hadoop システム + HBase インストール)
- それは実行されます Hadoop HDFS.
- すべてのデーモンは単一のノード上で動作します。
- 生産環境での使用を推奨します。
3) 完全分散モードのインストール(マルチノードHadoop環境+HBaseのインストール)
- それは実行されます Hadoop HDFS.
- すべてのデーモンは、クラスター内に存在するすべてのノードで実行されます。
- 生産環境での使用を強くお勧めします。
Hadoopのインストールについては、こちらを参照してください。 Hadoopインストールガイド.
以下のスクリーンショットは HBase 1.1.2 を使用しています。現在の安定版リリースは HBase 2.5.x および 2.6.x シリーズです (Java バージョンは8または11ですが、インストール手順と設定ファイルは基本的に同じです。
HBase tar ファイルの安定版をダウンロードする方法
ステップ 1) Apache HBase公式ダウンロードページ HBaseをダウンロードするには、以下の図のようにダウンロードページが開きます。
ステップ2)以下に示すように、安定版であるHBase 1.1.2バージョンを選択します。
ステップ3)hbase-1.1.2-bin.tar.gzをクリックします。tarファイルがダウンロードされます。ダウンロードしたtarファイルをインストール場所にコピーします。
HBase をインストールする方法 Ubuntu スタンドアロンモードあり
HBaseスタンドアロンモードのインストール手順をステップバイステップで説明します。 Ubuntu:
ステップ 1) 以下のコマンドを実行します。hbase-1.1.2-bin.tar.gz を /home/hduser に配置します。
ステップ2)コマンド「$tar -xvf hbase-1.1.2-bin.tar.gz」を実行して解凍します。これにより内容が解凍され、/home/hduser の場所に hbase-1.1.2 が作成されます。
ステップ 3) 以下のように hbase-env.sh を開き、以下に示すように JAVA_HOME パスを location に指定します。
ステップ4)~/.bashrcファイルを開き、以下に示すようにHBASE_HOMEパスを指定します。
export HBASE_HOME=/home/hduser/hbase-1.1.1 export PATH= $PATH:$HBASE_HOME/bin
HBASE_HOMEエントリが追加された更新後の~/.bashrcファイルを以下に示します。
ステップ 5)ファイルにプロパティを追加します。hbase-site.xml を開き、以下のプロパティをファイル内に配置します。
hduser@ubuntu$ gedit hbase-site.xml(コードは以下のとおり)
<property> <name>hbase.rootdir</name> <value>file:///home/hduser/HBASE/hbase</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/home/hduser/HBASE/zookeeper</value> </property>
hbase-site.xml ファイルが開かれました gedit 以下に示します。
ここでは2つのプロパティを配置します。
- HBaseルートディレクトリ用と、
- データディレクトリに対応する2番目は 飼育係.
HMasterとZooKeeperのすべてのアクティビティは、このhbase-site.xmlを指しています。
ステップ 6) IP アドレスを指定します。/etc ディレクトリにある hosts ファイルを開き、以下のように IP アドレスを指定します。
ステップ7)次に、以下に示すように、hbase-1.1.1/bin ディレクトリで start-hbase.sh を実行します。その後、jps コマンドを使用して HMaster が実行されているかどうかを確認できます。
ステップ 8) HBase シェルを起動します。HBase シェルは、以下の方法で起動できます。 hbaseシェル コマンドを実行すると、下のスクリーンショットに示すように対話型シェルモードに入ります。シェルモードに入ると、あらゆる種類のコマンドを実行できます。
スタンドアロン モードでは、Hadoop デーモンを起動する必要はありません。 HBase は独立して実行できます。
HBase の擬似分散モードのインストール
これは、Apache HBaseのインストール方法の一つで、擬似分散モードと呼ばれるインストール方法です。以下に、擬似分散モードを使用してHBaseをインストールする手順を示します。
ステップ 1) hbase-1.1.2-bin.tar.gz を /home/hduser に配置します。
ステップ2)コマンド「$tar -xvf hbase-1.1.2-bin.tar.gz」を実行して解凍します。これにより内容が解凍され、/home/hduser の場所に hbase-1.1.2 が作成されます。
ステップ 3) 以下のように hbase-env.sh を開き、場所の JAVA_HOME パスとリージョン サーバーのパスを指定し、以下に示すコマンドをエクスポートします。
ステップ4)このステップでは、~/.bashrc ファイルを開き、以下のスクリーンショットに示すように HBASE_HOME パスを指定します。
ステップ 5) hbase-site.xml を開き、以下のプロパティをファイルに記述します (コードは以下のとおり)。
<property> <name>hbase.rootdir</name> <value>hdfs://localhost:9000/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>localhost</value> </property> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>hbase.zookeeper.property.clientPort</name> <value>2181</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/home/hduser/hbase/zookeeper</value> </property>
擬似分散プロパティを含むhbase-site.xmlファイルを以下に示します。
残りのZooKeeperの設定は以下のとおりです。
ファイル内の各プロパティは、それぞれ特定の役割を担っています。
- HBaseのルートディレクトリをhbase.rootdirプロパティに設定します。
- 分散環境の場合、hbase.cluster.distributed を true に設定する必要があります。
- ZooKeeperのクォーラムプロパティはここで設定する必要があります。
- レプリケーションは、dfs.replication プロパティで設定します。デフォルトでは、レプリケーション値は 1 に設定されています。完全分散モードでは、複数のデータノードが存在するため、dfs.replication プロパティに 1 より大きい値を設定することで、レプリケーション値を増やすことができます。
- クライアントポートは、hbase.zookeeper.property.clientPort プロパティに指定する必要があります。
- ZooKeeperのデータディレクトリは、hbase.zookeeper.property.dataDirプロパティで指定できます。
ステップ 6) まず Hadoop デーモンを起動し、その後、以下に示すように HBase デーモンを起動します。まず、以下に示すように ./start-all.sh コマンドを使用して Hadoop デーモンを起動する必要があります。
その後、以下に示すように、hbase-start.sh を使用して HBase デーモンを起動します。
次に、以下に示すように、jpsコマンドを使用して実行中のプロセスを確認します。
HBase 完全分散モードのインストール
完全分散モードでは、擬似分散構成を実際のクラスタ全体に拡張します。
- この設定はHadoopクラスタモードで機能し、クラスタ全体に複数のノードが生成されて実行されます。
- インストール方法は擬似分散モードと同じです。唯一の違いは、複数のノードにまたがって起動される点です。
- hbase-site.xmlとhbase-env.shに記載されている設定ファイルは、擬似モードで記載されているものと同じです。
完全分散モードでは、デーモンが正しく通信できるように、クラスター上の Hadoop のバージョンが HBase にバンドルされている Hadoop ライブラリのバージョンと一致していることを確認してください。
HBase インストールのトラブルシューティング
1) 問題点:マスターサーバーは初期化されるが、リージョンサーバーは初期化されない
マスターサーバーとリージョンサーバー間の通信は、それぞれのIPアドレスを介して行われます。マスターサーバーは、稼働中のリージョンサーバー、またはIPアドレスが127.0.0.1のリージョンサーバーからの通信を待ち受けます。IPアドレス127.0.0.1はローカルホストであり、マスターサーバー自身のローカルホストに解決されます。
原因:
リージョンサーバーとマスター間の双方向通信において、リージョンサーバーはマスターサーバーに対し、自身のIPアドレスが127.0.0.1であることを継続的に通知します。
解決策:
- hostsファイルに存在するローカルホストエントリから、マスターサーバー名のノードを削除します。
- ホストファイルの場所: /etc/hosts。
何を変更するか:
/etc/hosts を開いて、この場所に移動してください。
127.0.0.1 fully.qualified.regionservernameregionservername localhost.localdomain localhost : : 1 localhost3.localdomain3 localdomain3
上記の設定を以下のように変更してください(上記で強調表示されているリージョンサーバー名を削除してください)。
127.0.0.1 localhost.localdomainlocalhost : : 1 localhost3.localdomain3 localdomain3
2) 問題の説明: ZooKeeper クォーラムサーバーのリストに私のアドレス XYZ が見つかりませんでした
原因:
- ZooKeeperサーバーが起動できず、サーバー名に.xyzなどのエラーが表示されます。
- HBase はマシン上で ZooKeeper サーバーを起動しようとしますが、同時にマシンは hbase.zookeeper.quorum 設定に存在するクォーラム構成内で自身を見つけることができません。
解決策:
- エラーメッセージに表示されているホスト名に置き換えてください。
- DNSサーバーをお持ちの場合は、hbase-site.xmlで以下の設定を行うことができます:hbase.zookeeper.dns.interfaceおよびhbase.zookeeper.dns.nameserver。
3) 問題提起:Hadoop DFSを使用してHBaseのルートディレクトリを作成しました。
- マスターは、HBaseのマイグレーションスクリプトを実行する必要があると伝えています。
- それを実行すると、HBaseのマイグレーションスクリプトはルートディレクトリにファイルが存在しないと応答します。
原因:
- Hadoop分散ファイルシステムを使用して、HBase用の新しいディレクトリが作成されました。
- HBaseでは、ここでは2つの可能性を想定しています。
1) ルートディレクトリが存在しません。
2) 以前にHBaseの実行インスタンスが初期化されていました。
解決策:
- HBaseのルートディレクトリが現在存在しないか、または以前のHBaseインスタンスの実行によって初期化されていないことを確認してください。
- 解決策の一環として、以下の手順に従ってください。
ステップ1)Hadoop DFSを使用してHBaseのルートディレクトリを削除します。
ステップ2)HBaseはディレクトリを自動的に作成および初期化します。
4) 問題提起:ZooKeeperセッションの期限切れイベント
原因:
- HMasterまたはHRegionサーバーが例外をスローしてシャットダウンしました。
- ログを確認すれば、実際に発生した例外を特定できます。
以下は、ZooKeeperの有効期限切れイベントによって発生した例外を示しています。強調表示されているイベントは、ログファイルに記録された例外の一部です。
ログファイルのコードは以下のとおりです。
WARN org.apache.zookeeper.ClientCnxn: Exception closing session 0x278bd16a96000f to sun.nio.ch.SelectionKeyImpl@355811ec java.io.IOException: TIMED OUT at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:906) WARN org.apache.hadoop.hbase.util.Sleeper: We slept 79410ms, ten times longer than scheduled: 5000 INFO org.apache.zookeeper.ClientCnxn: Attempting connection to server hostname/IP:PORT INFO org.apache.zookeeper.ClientCnxn: Priming connection to java.nio.channels.SocketChannel[connected local=/IP:PORT remote=hostname/IP:PORT] INFO org.apache.zookeeper.ClientCnxn: Server connection successful WARN org.apache.zookeeper.ClientCnxn: Exception closing session 0x278bd16a96000d to sun.nio.ch.SelectionKeyImpl@3544d65e java.io.IOException: Session Expired at org.apache.zookeeper.ClientCnxn$SendThread.readConnectResult(ClientCnxn.java:589) at org.apache.zookeeper.ClientCnxn$SendThread.doIO(ClientCnxn.java:709) at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:945) ERROR org.apache.hadoop.hbase.regionserver.HRegionServer: ZooKeeper session expired
解決策:
- デフォルトのRAM容量は1GBです。長時間かかるインポート処理の場合は、1GB以上のRAM容量を確保してください。
- ZooKeeperのセッションタイムアウト時間を延長してください。
- ZooKeeperのセッションタイムアウトを延長するには、hbase/confフォルダパスにあるhbase-site.xmlファイル内の以下のプロパティを変更します。
- デフォルトのセッションタイムアウトは60秒です。下記の説明に従って120秒に変更できます。
<property>
<name> zookeeper.session.timeout </name>
<value>1200000</value>
</property>
<property>
<name> hbase.zookeeper.property.tickTime </name>
<value>6000</value>
</property>
















