HBaseのインストール方法 Ubuntu: ステップバイステップガイド

⚡ スマートサマリー

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

  • 🧩 インストールモード: スタンドアロンはローカルファイルシステム上の 1 つの JVM で実行されます。分散モードはデータを Hadoop HDFS.
  • (すなわち、 ダウンロード: Apache HBaseのサイトからHBaseバイナリのtarballをダウンロードし、ホームディレクトリに解凍してください。
  • ⚙️ 構成: JAVA_HOMEとHBASE_HOMEを設定し、hbase-site.xmlでhbase.rootdirとZooKeeperディレクトリを定義します。
  • 起動: start-hbase.shを実行し、jpsでHMasterを確認してから、hbaseシェルを使用して対話型プロンプトを開きます。
  • 🌐 擬似分散型: hbase.rootdir を HDFS に指定し、hbase.cluster.distributed を有効にし、ZooKeeper のクォーラムとクライアントポートを設定します。
  • 🩹 トラブルシューティング: hostsとhbase-site.xmlを編集することで、region-server、ZooKeeperのクォーラム、root-directory、およびsession-timeoutのエラーを解決します。

Apache HBaseをインストールする方法 Ubuntu スタンドアロンモード、擬似分散モード、および完全分散モードで

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をダウンロードするには、以下の図のようにダウンロードページが開きます。

Apache HBaseのダウンロードページをブラウザで開き、リリース版のtarballを入手してください。

ステップ2)以下に示すように、安定版であるHBase 1.1.2バージョンを選択します。

ダウンロードページで安定版のHBase 1.1.2リリースを選択する

ステップ3)hbase-1.1.2-bin.tar.gzをクリックします。tarファイルがダウンロードされます。ダウンロードしたtarファイルをインストール場所にコピーします。

hbase-1.1.2-bin.tar.gzバイナリリンクをクリックして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 に指定します。

スタンドアロンモード用にJAVA_HOMEパスを設定するためにhbase-env.shを編集する

ステップ4)~/.bashrcファイルを開き、以下に示すようにHBASE_HOMEパスを指定します。

export HBASE_HOME=/home/hduser/hbase-1.1.1
export PATH= $PATH:$HBASE_HOME/bin

HBASE_HOMEエントリが追加された更新後の~/.bashrcファイルを以下に示します。

スタンドアロンモード用に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 以下に示します。

hbase-site.xml が開かれました gedit スタンドアロンのルートディレクトリとZooKeeperプロパティを使用

ここでは2つのプロパティを配置します。

  • HBaseルートディレクトリ用と、
  • データディレクトリに対応する2番目は 飼育係.

HMasterとZooKeeperのすべてのアクティビティは、このhbase-site.xmlを指しています。

ステップ 6) IP アドレスを指定します。/etc ディレクトリにある hosts ファイルを開き、以下のように IP アドレスを指定します。

マシンのIPアドレスをマッピングするために/etc/hostsファイルを編集する

ステップ7)次に、以下に示すように、hbase-1.1.1/bin ディレクトリで start-hbase.sh を実行します。その後、jps コマンドを使用して HMaster が実行されているかどうかを確認できます。

jpsコマンドの出力結果。HMasterプロセスがスタンドアロンモードで実行されていることを示しています。

ステップ 8) HBase シェルを起動します。HBase シェルは、以下の方法で起動できます。 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 パスとリージョン サーバーのパスを指定し、以下に示すコマンドをエクスポートします。

擬似分散モード用に、JAVA_HOMEとリージョンサーバーのパスを使用してhbase-env.shを編集する

ステップ4)このステップでは、~/.bashrc ファイルを開き、以下のスクリーンショットに示すように HBASE_HOME パスを指定します。

擬似分散モード用に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ファイルを以下に示します。

擬似分散型HDFSおよびZooKeeperプロパティを含むhbase-site.xml

残りのZooKeeperの設定は以下のとおりです。

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 デーモンを起動する必要があります。

start-all.shコマンドを実行してHadoopデーモンを起動します。

その後、以下に示すように、hbase-start.sh を使用して HBase デーモンを起動します。

start-hbase.shスクリプトを使用してHBaseデーモンを擬似分散モードで起動する

次に、以下に示すように、jpsコマンドを使用して実行中のプロセスを確認します。

jpsコマンドの出力結果:実行中のHadoopおよびHBaseデーモンの一覧

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>

よくあるご質問

HBaseにはサポートされているものが必要です Java JAVA_HOMEが設定されたランタイムが必要です。擬似分散モードと完全分散モードでは、実行中の Hadoop HDFS クラスター。スタンドアロンモードは、 Javaなぜなら、ローカルファイルシステムを使用し、独自のZooKeeperをバンドルしているからです。

Hadoopデーモンを使用せず、単一のJVM内でローカルファイルシステム上で動作するスタンドアロンモードには対応していません。擬似分散モードと完全分散モードでは、データをHDFSに保存し、そのNameNodeとDataNodeに依存するため、Hadoopが必要です。

conf/hbase-env.sh を編集し、export JAVA_HOME=/path/to/your/jdk という行を追加して、JDK ルートを指定します。HBase は起動時にこの値を読み取ります。また、~/.bashrc に export JAVA_HOME を追加して、シェルが JDK を見つけるようにすることもできます。 Java グローバルに

このガイドでは HBase 1.1.2 を示していますが、現在の安定版リリースは HBase 2.5.x および 2.6.x 系統で、3.0 はベータ版です。新しいバージョンでは Java バージョン8または11。ダウンロード、設定、起動の手順は基本的に同じです。

jps コマンドを実行して HMaster プロセス、および分散モードの HRegionServer と HQuorumPeer を探します。また、HBase Master の Web UI を開くか、内部で status コマンドを実行することもできます。 hbaseシェル クラスターが稼働していることを確認する。

デフォルトでは、HBaseマスターはポート16000でリッスンし、Web UIはポート16010で動作します。各リージョンサーバーはポート16020を使用し、UIはポート16030で動作します。ZooKeeperはクライアントポート2181でリッスンします。このポート番号は、hbase.zookeeper.property.clientPortで設定されます。

AIアシスタントと機械学習ログ分析ツールは、HBaseとZooKeeperのログをスキャンしてクラスタリングし、セッションの期限切れやクォーラムの失敗といったエラーの根本原因を明らかにします。これらのツールは設定の修正案を提示しますが、エンジニアは変更を適用する前に必ず内容を確認する必要があります。

Yes. GitHubコパイロット 短いコメントから、hbase-site.xml のスニペット、hbase-env.sh のエントリ、および起動シェルスクリプトを作成します。 Rev生成された設定は古いデフォルト値を参照している可能性があるため、実行する前に、正しいプロパティ名、パス、ポートに関する提案を確認してください。