すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:HBase シェルの使用

最終更新日:Feb 26, 2025

HBase サービスを含む E-MapReduce(EMR)クラスタを作成した後、HBase シェルを使用して HBase に接続し、データの読み取りや書き込みなどの操作を実行できます。このトピックでは、HBase シェルを使用して HBase に接続し、一般的な HBase シェルコマンドを使用する方法について説明します。

前提条件

HBase サービスを含む DataServing クラスタまたはカスタム クラスタが作成されていること。詳細については、「クラスタを作成する」をご参照ください。

HBase への接続

  1. SSH モードで目的のクラスタにログオンします。詳細については、「クラスタにログオンする」をご参照ください。

  2. 次のコマンドを実行して HBase に接続します。

    hbase shell

    HBase に接続すると、基本的な使用方法のヒント、HBase のバージョン情報、および hbase(main):001:0> プロンプトが表示されます。

    help コマンドを実行すると、HBase シェルでサポートされているコマンドのリストを表示できます。

一般的な HBase シェル コマンド

テーブルの作成

create コマンドを実行してテーブルを作成します。テーブル名と 1 つ以上のカラムファミリーを指定する必要があります。たとえば、次のコマンドを実行して、cf1 というカラムファミリーを含む table1 という名前のテーブルを作成できます。

create 'table1', 'cf1'

テーブルへのデータの書き込み

put コマンドを実行して、テーブルにデータを書き込みます。テーブル名、行キー、列、および書き込む値を指定する必要があります。HBase の列は、カラムファミリーとカラム修飾子で構成されます。次の例では、cf1:q1 列は、カラムファミリー cf1 とカラム修飾子 q1 で構成されています。

put 'table1', 'r1', 'cf1:q1', 'v1'
put 'table1', 'r1', 'cf1:q2', 'v2'
put 'table1', 'r2', 'cf1:q1', 'v3'

テーブルのスキャン

scan コマンドを実行して、指定された条件を満たすすべてのデータをテーブルから取得します。ビジネス要件に基づいて scan コマンドに条件を追加できます。たとえば、次のコマンドを実行して、table1 の cf1:q1 列のすべてのデータを取得できます。

scan 'table1', {COLUMNS => 'cf1:q1'}

次の出力が返されます。

ROW                                                COLUMN+CELL
 r1                                                column=cf1:q1, timestamp=2022-09-14T16:06:34.339, value=v1
 r2                                                column=cf1:q1, timestamp=2022-09-14T16:06:36.615, value=v3
2 row(s)

データの取得

get コマンドを実行して、テーブルから単一行またはセルのデータを取得します。ビジネス要件に基づいて get コマンドに条件を追加できます。たとえば、次のコマンドを実行して、table1 の r1 行の cf1:q1 列の値を取得できます。

get 'table1', 'r1', {COLUMNS => 'cf1:q1'}

次の出力が返されます。

COLUMN                                             CELL
 cf1:q1                                            timestamp=2022-09-14T16:06:34.339, value=v1
1 row(s)

データの削除

  • 単一セルのデータの削除

    delete コマンドを実行して、テーブルから単一セルの値を削除します。セルは、テーブルの行の列に対応します。たとえば、次のコマンドを実行して、table1 の r2 行の cf1:q1 列の値を削除できます。

    delete 'table1', 'r2', 'cf1:q1'
  • 複数セルのデータの削除

    deleteall コマンドを実行して、テーブルの行で指定された条件を満たすすべての列の値を削除します。たとえば、次のコマンドを実行して、table1 の r1 行のすべてのデータを削除できます。削除の範囲を制限するために、コマンドにカラムファミリー名を追加できます。

    deleteall 'table1', 'r1'

テーブルの無効化

disable コマンドを実行して、テーブルを無効にします。テーブルを削除したり、テーブルの特定の設定を変更したりする前に、テーブルを無効にする必要があります。たとえば、次のコマンドを実行して、table1 を無効にできます。

disable 'table1'

テーブルの有効化

enable コマンドを実行して、テーブルを有効にします。たとえば、次のコマンドを実行して、table1 を有効にできます。

enable 'table1'

テーブルの削除

drop コマンドを実行して、テーブルを削除します。テーブルを削除する前に、テーブルを無効にする必要があります。たとえば、次のコマンドを実行して、table1 を削除できます。

drop 'table1'

FAQ

HBase はビジュアル開発 UI を提供していますか?

HBase は本格的なビジュアル開発 UI を提供していません。HBase に付属する Web UI は、主に HBase クラスタのパフォーマンスとステータスの監視と管理に使用され、データ操作の実行には使用されません。HBase クラスタのデータに対して作成、読み取り、更新、削除(CRUD)操作を実行するには、コマンドラインツール(HBase シェル)、Java API、および REST API や Thrift API など、他のインターフェイスを使用できます。

関連情報

詳細については、Apache HBase の公式 Web サイトにある Apache HBase リファレンスガイド をご参照ください。