HBase シェル コマンドと例

⚡ スマートサマリー

HBaseシェルコマンドを使用すると、対話型プロンプトから直接テーブルとデータを管理できます。コマンドは、一般的なコマンド、作成や削除などのテーブル管理コマンド、配置や取得などのデータ操作コマンド、クラスタレプリケーションコマンドに分類されています。

  • 甘いもの<XNUMXxXNUMX><XNUMXxXNUMX><XNUMXxAXNUMX><XNUMXxAXNUMX>️️ 一般的なコマンド: status、version、table_help、およびwhoamiは、クラスタの状態とユーザー情報を報告します。
  • 🗂️ テーブル管理: テーブルの作成、一覧表示、説明、無効化、有効化、削除、変更、構築、および形状変更を行います。
  • 会<XNUMXxEXNUMX><XNUMXxXNUMXF>️️<XNUMXxXNUMXF>️️ データ操作: put、get、delete、deleteall、truncate、count、scanは、セルの値を読み書きします。
  • 🔁 Cluster 複製: add_peer、remove_peer、start_replication、stop_replicationは、データレプリケーションを管理します。
  • TTL属性: Time To Liveは、設定された秒数が経過すると、列ファミリーの行を自動的に期限切れにします。
  • 🤖 AIアシスト: AIアシスタントは、平易な言葉で書かれたプロンプトからHBaseシェルコマンドを生成し、説明します。

テーブル、データ、クラスタのレプリケーションに関するHBaseシェルコマンドの例

シェルコマンドを使用してHBaseとやり取りする方法 Java API

Hadoop上にHBaseを正常にインストールすると、対話型シェルが利用可能になり、さまざまなコマンドを実行して複数の操作を実行できます。これらのコマンドを使用することで、データテーブルに対して複数の操作を実行でき、データストレージの効率性を向上させ、クライアントとの柔軟なやり取りを実現できます。

HBaseとのやり取りには、次の2つの方法があります。

  • HBaseインタラクティブシェルモード、および
  • 介して Java APIです。

HBaseでは、テーブル操作、テーブル管理、データモデリングのためにHBaseと対話するには、対話型シェルモードを使用します。 Java API モデルでは、HBase ですべてのタイプのテーブルとデータ操作を実行できます。これらの両方の方法を使用して HBase とやり取りできます。2 つの唯一の違いは、 Java APIの使用 Java HBaseに接続するにはコードを使用するモードと、シェルモードのようにシェルコマンドを使用してHBaseに接続するモードがあります。

先に進む前に、HBaseについて簡単に復習しておきましょう。

  • HBase の用途 Hadoopの HBaseは、大量のデータを保存するためのストレージシステムとしてファイルを使用します。HBaseは、マスターサーバーとリージョンサーバーで構成されています。
  • HBaseに保存されるデータはリージョンという形式になります。さらに、これらのリージョンは分割され、複数のリージョンサーバーに保存されます。
  • これらのシェルコマンドを使用すると、プログラマは完全なシェルモード対話を用いてテーブルスキーマとデータ操作を定義できます。
  • どのコマンドを使用しても、それはHBaseのデータモデルに反映されます。
  • 私たちは、BashシェルなどのオペレーティングシステムのスクリプトインタープリタでHBaseシェルコマンドを使用します。
  • Bashシェルはほとんどのコマンドインタープリタのデフォルトです Linux そしてUnix系オペレーティングシステムのディストリビューション。
  • HBaseの高度なバージョンでは、テーブルに対してJRubyスタイルのオブジェクト指向参照を用いたシェルコマンドが提供されます。
  • テーブル参照変数を使用すると、HBaseシェルモードでデータ操作を実行できます。

具体的な例を挙げますと、以下の通りです。

  • このチュートリアルでは、「education」がテーブル名を表し、「guru99」という列名に対応するテーブルを作成しました。
  • 一部のコマンドでは、「guru99」自体がテーブル名を表します。

一般的なコマンド

HBaseでは、一般的なコマンドは以下のように分類されます。

  • ステータス
  • Table_help (スキャン、ドロップ、取得、挿入、無効化など)
  • 私は誰

HBaseシェルコマンドに入るには、まず、以下に示すコードを実行する必要があります。

hbase Shell

HBaseシェルに入ると、以下のシェルコマンドをすべて実行できます。これらのコマンドを使用すると、HBaseシェルモードであらゆる種類のテーブル操作を実行できます。対話型シェルプロンプトは以下のように表示されます。

HBase対話型シェルプロンプトがhbaseシェルコマンドで開かれました。

これらすべてのコマンドとその使用法を例を挙げて XNUMX つずつ見てみましょう。

ステータス

Syntax:status

このコマンドを実行すると、クラスタ内のサーバー数、アクティブなサーバー数、平均負荷値など、システムの状態に関する詳細情報が表示されます。システムの状態をどの程度詳細に知りたいかに応じて、特定のパラメータを指定することもできます。パラメータは「summary」、「simple」、「detailed」のいずれかで、デフォルトのパラメータは「summary」です。

以下に、statusコマンドに様々なパラメータを渡す方法を示します。下のスクリーンショットをご覧いただくと、より理解が深まるでしょう。

hbase(main):001:0>status
hbase(main):002:0>status 'simple'
hbase(main):003:0>status 'summary'
hbase(main):004:0> status 'detailed'

ステータス出力は以下のとおりです。

HBaseシェルのstatusコマンドの出力には、稼働中のサーバー、停止中のサーバー、および平均負荷が表示されます。

このステータスコマンドを実行すると、稼働中のサーバー数、停止中のサーバー数、およびサーバーの平均負荷に関する情報が表示されます。このスクリーンショットには、稼働中のサーバーが1台、停止中のサーバーが1台、平均負荷が7.0000であるといった情報が表示されています。

Syntax: version

バージョン出力は以下のとおりです。

インストールされているHBaseのバージョンを表示するHBaseシェルバージョンコマンド

  • このコマンドは、コマンドモードで現在使用されているHBaseのバージョンを表示します。
  • versionコマンドを実行すると、上記のような出力が表示されます。

テーブルヘルプ

Syntax:table_help

table_helpの出力は以下のとおりです。

HBaseシェルのtable_help出力には、createコマンドとget_tableコマンドの使用方法が一覧表示されます。

このコマンドは以下をガイドします。

  • テーブル参照コマンドとは何か、そしてその使い方について説明します。
  • 本書では、HBaseの様々なシェルコマンドの使用方法とその構文について解説します。
  • 上記のスクリーンショットでは、「create」コマンドと「get_table」コマンドの構文と使用方法が示されています。HBaseにテーブルが作成されると、これらのコマンドを使用してテーブルを操作できるようになります。
  • これにより、put、getなどのテーブル操作コマンド、およびその他のすべてのコマンド情報が表示されます。

whoami

Syntax: Whoami

whoamiの出力結果は以下のとおりです。

HBaseシェルのwhoamiコマンドで現在のhduserとグループが返される

このコマンド「whoami」は、HBaseクラスタから現在のHBaseユーザー情報を取得するために使用されます。以下のような情報が表示されます。

  • HBaseに存在するグループ。
  • ユーザー情報。例えば、この例では「hduser」はスクリーンショットに示されているユーザー名を表します。

TTL(Time To Live) – 属性

HBaseでは、カラムファミリーにTTL(有効期限)を使用して秒単位の時間値を設定できます。有効期限が切れると、HBaseは自動的に行を削除します。この属性は、現在のバージョンを含む、行のすべてのバージョンに適用されます。

HBaseで各行にエンコードされるTTL時間はUTCで指定されます。この属性はテーブル管理コマンドで使用されます。TTL処理とカラムファミリーTTLの重要な違いは以下のとおりです。

  • セルの TTL は、秒ではなくミリ秒単位で表されます。
  • セルTTLは、カラムファミリーレベルのTTL設定を超えてセルの有効寿命を延長することはできません。

テーブル管理コマンド

これらのコマンドを使用すると、プログラマーは行と列のファミリを持つテーブルとテーブルスキーマを作成できます。テーブル管理コマンドは次のとおりです。

  • 創造する
  • リスト
  • 説明する
  • 無効にします
  • すべて無効にします
  • 有効にする
  • 全て可能にする
  • ドロップ
  • ドロップオール
  • Show_filters
  • 年齢
  • 変更ステータス

HBaseにおける様々なコマンドの使い方を例を交えて見ていきましょう。

創造する

Syntax: create <tablename>, <columnfamilyname>

例:-

hbase(main):001:0> create 'education' ,'guru99'
0 rows(s) in 0.312 seconds
=>Hbase::Table – education

createコマンドの実行結果を以下に示します。

HBaseシェルのcreateコマンドで、guru99カラムファミリーを使用してeducationテーブルを作成する

上記の例では、各カラムファミリーの仕様に従って指定された名前でHBaseにテーブルを作成する方法を説明しています。さらに、テーブルスコープ属性を渡すこともできます。テーブル「education」が作成されたかどうかを確認するには、以下の「list」コマンドを使用します。参照 HBaseテーブルを作成する Java そして貝殻.

リスト

Syntax:list

リスト出力は以下のとおりです。

HBaseシェルリストコマンドでHBaseに存在する8つのテーブルを表示

  • 「list」コマンドを実行すると、HBaseに存在する、または作成されたすべてのテーブルが表示されます。
  • 上記のスクリーンショットに示されている出力は、現在HBaseに存在するテーブルを表示したものです。
  • このスクリーンショットには、HBase内に合計8つのテーブルが存在することが示されています。
  • オプションの正規表現パラメータを渡すことで、テーブルからの出力値をフィルタリングできます。

説明する

Syntax:describe <table name>
hbase(main):010:0>describe 'education'

describeコマンドの出力結果は以下のとおりです。

HBaseシェルのdescribeコマンドの出力で、教育テーブルの列ファミリーの詳細が示されています。

このコマンドは、名前付きテーブルを説明します。

  • これにより、前述の表に存在する列ファミリーに関する詳細情報が得られます。
  • 私たちの場合、それは「教育」という表の説明を与えます。
  • テーブル名、列ファミリー、関連するフィルター、バージョン、その他の詳細情報が表示されます。

disable

Syntax: disable <tablename>
hbase(main):011:0>disable 'education'

無効化後の出力は以下のとおりです。

HBaseシェルのdisableコマンドで教育テーブルをオフラインにする

  • このコマンドを実行すると、指定されたテーブルの無効化が開始されます。
  • テーブルを削除またはドロップする必要がある場合は、まず無効化する必要があります。

上記のスクリーンショットでは、教育に関する表を無効にしています。

すべて無効にします

 Syntax: disable_all<"matching regex"
  • このコマンドは、指定された正規表現に一致するすべてのテーブルを無効にします。
  • 実装方法はdropコマンドと同じです(ただし、マッチング用の正規表現が追加されています)。
  • テーブルが無効化されると、ユーザーはHBaseからそのテーブルを削除できるようになります。
  • 削除またはドロップする前にping テーブルの場合は、まず無効化する必要があります。

有効にする

Syntax: enable <tablename>
hbase(main):012:0>enable 'education'

有効化時の出力は以下のとおりです。

HBaseシェルのenableコマンドで無効化された教育テーブルを再アクティブ化する

  • このコマンドを実行すると、指定されたテーブルの有効化が開始されます。
  • どちらのテーブルが無効になっている場合でも、それを以前の状態に戻すには、このコマンドを使用します。
  • テーブルが最初に無効化され、削除またはドロップされていない場合、無効化されたテーブルを再利用したい場合は、このコマンドを使用して有効化する必要があります。
  • 上記のスクリーンショットでは、「education」テーブルを有効にしています。

show_filters

Syntax: show_filters

show_filtersの出力結果は以下のとおりです。

HBaseシェルのshow_filtersコマンドの出力には、利用可能なHBaseフィルターの一覧が表示されます。

このコマンドは、ColumnPrefixFilter、TimestampsFilter、PageFilter、FamilyFilterなど、HBaseに存在するすべてのフィルターを表示します。

ドロップ

Syntax:drop <table name>
hbase(main):017:0>drop 'education'

ドロップ出力は以下のとおりです。

HBaseシェルのdropコマンドで無効化された教育テーブルを削除する

dropコマンドを使用する際には、以下の点に留意する必要があります。

  • HBaseに存在するテーブルを削除するには、まずそのテーブルを無効にする必要があります。
  • HBaseに存在するテーブルを削除するには、まずそのテーブルを無効にする必要があります。
  • したがって、テーブルを削除または破棄するには、まずdisableコマンドを使用してテーブルを無効にする必要があります。
  • 上記のスクリーンショットでは、ping 表「教育」。
  • このコマンドを実行する前に、「education」テーブルを無効にする必要があります。

ドロップオール

Syntax: drop_all<"regex">
  • このコマンドは、指定された正規表現に一致するすべてのテーブルを削除します。
  • このコマンドを実行する前に、disable_all を使用してテーブルを無効にする必要があります。
  • 正規表現に一致する式を含むテーブルは、HBaseから削除されます。

有効になっています

Syntax: is_enabled 'education'

このコマンドは、指定されたテーブルが有効になっているかどうかを確認します。通常、「enable」コマンドと「is_enabled」コマンドの動作には多少の混乱が見られますが、ここではその点を明確にします。

  • テーブルが無効になっている場合、そのテーブルを使用するには、enableコマンドを使用して有効にする必要があります。
  • is_enabledコマンドは、テーブルが有効になっているかどうかを確認します。

変更する

Syntax: alter <tablename>, NAME=><column familyname>, VERSIONS=>5

このコマンドは、列ファミリーのスキーマを変更します。 正確に何を行うのかを理解するために、ここでは例を示して説明しました。

例:これらの例では、テーブルとその列に対してALTERコマンド操作を実行します。次のような操作を実行します。

  • 単一列および複数列のファミリー名を変更する。
  • テーブルから列ファミリー名を削除する。
  • テーブルに対してスコープ属性を使用するその他の操作がいくつかあります。

テーブル「education」の列ファミリー「guru99_1」を現在の値から変更または追加して、最大5つのセルバージョンを保持します。ここで、「education」は、以前に列名「guru99」で作成されたテーブル名です。以下に示すように、ALTERコマンドを使用して、列ファミリースキーマをguru99からguru99_1に変更しようとしています。

HBaseシェルALTERコマンドで教育テーブルの列ファミリーをguru99_1に変更する

hbase> alter 'education', NAME='guru99_1', VERSIONS=>5

alterコマンドは、複数のカラムファミリーに対しても使用できます。例えば、以下に示すように、既存のテーブル「education」に2つの新しいカラムを定義します。

HBaseシェルALTERコマンドで、guru99_2とguru99_3という2つの新しいカラムファミリーを追加します。

 hbase> alter 'edu', 'guru99_1', {NAME => 'guru99_2', IN_MEMORY => true}, {NAME => 'guru99_3', VERSIONS => 5}
  • このコマンドを使用すると、複数の列スキーマを一度に変更できます。
  • 上記のスクリーンショットに示されているように、guru99_2とguru99_3は、educationテーブル用に定義した2つの新しい列名です。
  • このコマンドの使用方法は、前のスクリーンショットで確認できます。

この手順では、テーブルから列ファミリーを削除する方法を見ていきます。テーブル「education」の「f1」列ファミリーを削除するには、以下のいずれかのコマンドを使用します。結果は次のスクリーンショットに示されています。

HBaseシェルALTERコマンドで教育テーブルから列ファミリーを削除する

hbase> alter 'education', NAME => 'f1', METHOD => 'delete'
hbase> alter 'education', 'delete' =>' guru99_1'

このコマンドでは、最初のステップで作成した guru99_1 という名前の列スペースを削除しようとしています。以下のスクリーンショットに示すように、テーブルスコープ属性を変更する方法と、テーブルスコープ属性を削除する方法の 2 つの手順が示されています。

HBaseシェルALTERコマンドでテーブルスコープ属性MAX_FILESIZEを設定する

Syntax: alter <'tablename'>, MAX_FILESIZE=>'132545224'

ステップ 1) MAX_FILESIZE、READONLY、MEMSTORE_FLUSHSIZE、DEFERRED_LOG_FLUSH などのテーブルスコープ属性を変更できます。これらは末尾に記述できます。たとえば、領域の最大サイズを 128MB またはその他のメモリ値に変更するには、このコマンドを使用します。

使用法:

  • 上記のように、テーブルに対してスコープ属性としてMAX_FILESIZEを使用できます。
  • MAX_FILESIZEで表される数値は、メモリ容量(バイト単位)を表します。

注:MAX_FILESIZEのテーブルスコープは、HBaseに存在するいくつかの属性によって決定されます。MAX_FILESIZEもテーブルスコープ属性に含まれます。

ステップ2)table_att_unsetメソッドを使用してテーブルスコープ属性を削除することもできます。以下のコマンドを参照してください。

alter 'education', METHOD => 'table_att_unset', NAME => 'MAX_FILESIZE'
  • 上記のスクリーンショットは、スコープ属性付きで変更されたテーブル名を示しています。
  • メソッド table_att_unset は、テーブルに存在する属性を解除するために使用されます。
  • 2番目の例では、属性MAX_FILESIZEの設定を解除しています。
  • このコマンドを実行すると、「education」テーブルからMAX_FILESIZE属性が解除されます。

変更ステータス

 Syntax: alter_status 'education'

alter_statusの出力は以下のとおりです。

HBaseシェルのalter_statsコマンドで、1つのリージョンのうち1つが更新されたことが示されています。

  • このコマンドを使用すると、alterコマンドのステータスを取得できます。
  • これは、更新されたスキーマを受け取ったテーブルの領域の数を示します。テーブル名を渡してください。
  • 上記のスクリーンショットでは、1/1 の領域が更新されたと表示されています。これは、1 つの領域が更新されたことを意味します。その後、更新が成功すると、「完了」というコメントが表示されます。

データ操作コマンド

これらのコマンドは、テーブルへのデータの挿入、テーブルからのデータの取得、スキーマの削除など、データ操作を行うためにテーブル上で動作します。これらに含まれるコマンドは次のとおりです。

  • 数量カウント
  • 入れ
  • 以上
  • 削除
  • すべて削除
  • 切り捨て
  • スキャン

これらのコマンドの使い方を例を用いて見ていきましょう。 HBaseデータの読み書き.

数量カウント

Syntax: count <'tablename'>, CACHE =>1000
  • このコマンドは、テーブル内の行数を取得します。返される値は行数です。
  • 現在の件数は、デフォルトでは1000行ごとに表示されます。
  • カウント間隔は任意で指定できます。
  • デフォルトのキャッシュサイズは10行です。
  • 適切なキャッシュを設定すれば、countコマンドは高速に動作します。

例:

hbase> count 'guru99', CACHE=>1000

カウント結果は以下のとおりです。

HBaseシェルのcountコマンドでguru99テーブルの行数を返す

この例では、「guru99」テーブルから一度に1000行を取得します。テーブルの行数が多い場合は、キャッシュの値を小さくすることができます。ただし、デフォルトでは一度に1行ずつ取得します。

hbase>count 'guru99', INTERVAL => 100000
hbase> count 'guru99', INTERVAL =>10, CACHE=> 1000

テーブル「guru99」に、例えばgのようなテーブル参照があるとします。以下のように、そのテーブル参照に対してcountコマンドを実行することもできます。

hbase>g.count INTERVAL=>100000
hbase>g.count INTERVAL=>10, CACHE=>1000

入れ

Syntax:  put <'tablename'>,<'rowname'>,<'columnvalue'>,<'value'>

このコマンドは以下の目的で使用されます。

  • 定義または指定されたテーブル、行、または列にセルの「値」を配置します。
  • オプションでタイムスタンプを同期します。

例:ここでは、「guru99」テーブルのr1行目、c1列目に値を入力します。

hbase> put 'guru99', 'r1', 'c1', 'value', 10

以下のスクリーンショットに示すように、テーブル「guru99」に10、15、30の3つの値を格納しました。

HBaseシェルのputコマンドで、guru99テーブルに値10、15、30を挿入する。

テーブル「guru99」に、例えばgのようなテーブル参照があるとします。テーブル参照に対して、次のようなコマンドを実行することもできます。

hbase> g.put 'guru99', 'r1', 'c1', 'value', 10

「guru99」に値を入力すると、上記のスクリーンショットのように出力されます。入力値がテーブルに正しく挿入されているかどうかを確認するには、「scan」コマンドを使用します。下のスクリーンショットでは、値が正しく挿入されていることがわかります。

HBaseシェルスキャン出力により、guru99テーブルに挿入された値が確認されました。

Code 抜粋:練習用

create 'guru99', {NAME=>'Edu', VERSIONS=>213423443}
put 'guru99', 'r1', 'Edu:c1', 'value', 10
put 'guru99', 'r1', 'Edu:c1', 'value', 15
put 'guru99', 'r1', 'Edu:c1', 'value', 30

コードスニペットから、私たちは以下のことを行っています。

  • ここでは、「guru99」という名前のテーブルを作成し、列名を「Edu」とします。
  • 「put」コマンドを使用することで、テーブル「guru99」の「Edu」列の行名r1に値を挿入します。

以上

Syntax: get <'tablename'>, <'rowname'>, {< Additional parameters>}

ここ、 TIMERANGE、TIMESTAMP、VERSIONS、FILTERSなどのパラメータを含めることができます。このコマンドを使用すると、テーブル内の行またはセルの内容を取得できます。さらに、TIMESTAMP、TIMERANGE、VERSIONS、FILTERSなどの追加パラメータを追加して、特定の行またはセルの内容を取得することもできます。

以下のgetコマンドの出力は、行r1と列c1の値を返します。

HBaseシェルのgetコマンドで、guru99テーブルから行r1と列c1を返す。

例:-

hbase> get 'guru99', 'r1', {COLUMN => 'c1'}

テーブル「guru99」の場合、このコマンドを使用すると、上記のスクリーンショットに示すように、行r1と列c1の値が表示されます。

hbase> get 'guru99', 'r1'

テーブル「guru99」の場合、このコマンドを使用すると、行r1の値が表示されます。

hbase> get 'guru99', 'r1', {TIMERANGE => [ts1, ts2]}

このコマンドを使用すると、テーブル「guru99」の行r1の、時間範囲ts1からts2までの値が表示されます。

hbase> get 'guru99', 'r1', {COLUMN => ['c1', 'c2', 'c3']}

このコマンドを使用すると、テーブル「guru99」の行r1と列ファミリーc1、c2、c3の値が表示されます。

削除

Syntax:delete <'tablename'>,<'row name'>,<'column name'>
  • このコマンドは、指定された行または列の表にあるセル値を削除します。
  • 削除は、削除されたセルの座標と完全に一致していなければなりません。
  • スキャン時に削除セルを使用すると、古いバージョンの値が削除されます。

例:以下の削除コマンドは、guru99 テーブルからセル r1、c1 を削除します。

HBaseシェル削除コマンドで、guru99テーブルからセルr1 c1を削除します。

hbase(main):)020:0> delete 'guru99', 'r1', 'c1''.
  • 上記の実行により、テーブル「guru99」の列ファミリーc1から行r1が削除されます。
  • テーブル「guru99」に、例えばgのようなテーブル参照があるとします。
  • テーブル参照に対してもコマンドを実行できます。例えば、hbase> g.delete 'guru99', 'r1', 'c1'" のようにです。

すべて削除

Syntax: deleteall <'tablename'>, <'rowname'>
  • このコマンドは、指定された行のすべてのセルを削除します。
  • 構文内で、列名とタイムスタンプを任意で定義できます。

例:以下のdeleteallコマンドは、r1行目のすべてのセルを削除します。

HBaseシェルのdeleteallコマンドで、guru99テーブルのr1行目のすべてのセルを削除します。

hbase>deleteall 'guru99', 'r1', 'c1'

これにより、テーブル内のすべての行と列が削除されます。必要に応じて、列名を指定することもできます。

切り捨て

Syntax:  truncate <tablename>

以下の truncate コマンドはテーブルを空にしますが、ping そのスキーマ:

HBaseシェルのtruncateコマンドを無効化、削除ping、そしてguru99テーブルを再作成する

HBaseテーブルを切り捨てた後、スキーマは残りますが、レコードは残りません。このコマンドは、以下の3つの機能を実行します。

  • テーブルが既に存在する場合は、そのテーブルを無効にします。
  • テーブルが既に存在する場合は削除します。
  • 上記のテーブルを再作成します。

スキャン

Syntax: scan <'tablename'>, {Optional parameters}

このコマンドはテーブル全体をスキャンし、テーブルの内容を表示します。

  • このスキャン コマンドにいくつかのオプションの仕様を渡して、システム内に存在するテーブルに関する詳細情報を取得できます。
  • スキャナー仕様には、次の属性の 1 つ以上が含まれる場合があります。
  • これらは、TIMERANGE、FILTER、TIMESTAMP、LIMIT、MAXLENGTH、COLUMNS、CACHE、STARTROW、およびSTOPROWです。
scan 'guru99'

スキャン結果は以下のとおりです。

HBaseシェルスキャンコマンドで、guru99テーブルの行r1、r2、r3を表示する。

上記のスクリーンショットでは、次のようになっています。

  • これは、「guru99」テーブルとその列名および値を示しています。
  • これは、単一の列値c1に対応する3つの行値r1、r2、r3で構成されます。
  • 各行に関連付けられた値を表示します。

例:- scanコマンドのさまざまな使用例:

Command 使用法
スキャン '.META.', {COLUMNS => 'info:regioninfo'} これは、HBaseのテーブルに存在する列に関連するすべてのメタデータ情報を表示します。
スキャン 'guru99', {COLUMNS => ['c1', 'c2'], LIMIT => 10, STARTROW => 'xyz'} これは、テーブルguru99の内容とその列ファミリーc1およびc2を表示し、値を10に制限します。
スキャン 'guru99'、{COLUMNS => 'c1'、TIMERANGE => [1303668804, 1303668904]} これは、指定された時間範囲属性値の間に存在する値を持つ、列名c1のguru99の内容を表示します。
'guru99' をスキャン、{RAW => true、VERSIONS =>10} このコマンドでは、RAW=> true は、テーブル guru99 に存在するすべてのセル値を表示するなどの高度な機能を提供します。

Code 例:まず、テーブルを作成し、テーブルに値を入力します。入力例は以下のスクリーンショットに示されています。

HBaseシェル入力でguru99テーブルを作成し、rawスキャンの前にバージョン付き値を挿入する

create 'guru99', {NAME=>'e', VERSIONS=>2147483647}
put 'guru99', 'r1', 'e:c1', 'value', 10
put 'guru99', 'r1', 'e:c1', 'value', 12
put 'guru99', 'r1', 'e:c1', 'value', 14
delete 'guru99', 'r1', 'e:c1', 11

scanコマンドを実行すると:

Query: scan 'guru99', {RAW=>true, VERSIONS=>1000}

以下のような出力が表示されます。

削除された値を含む複数のセルバージョンを示すHBaseシェル生スキャン出力

上記のスクリーンショットに示されている出力には、以下の情報が含まれています。

  • 属性RAW=>true、VERSIONS=>1000でguru99テーブルをスキャンしています。
  • 列ファミリーと値を含む行を表示します。
  • 3行目には、その列に存在していた削除された値が表示されています。
  • 表示される出力はランダムであり、テーブルに入力した値と同じ順序になることはありません。

Cluster レプリケーションコマンド

  • これらのコマンドは、HBaseのクラスタ設定モードで動作します。
  • クラスターへのピアの追加と削除、およびレプリケーションの開始と停止には、一般的にこれらのコマンドが使用されます。
Command Functionality
追加ピア レプリケーション対象のピアをクラスタに追加します。
hbase> add_peer '3', zk1,zk2,zk3:2182:/hbase-prod
削除ピア 定義されたレプリケーション ストリームを停止し、ピアに関するすべてのメタデータ情報を削除します。
hbase>remove_peer '1'
start_replication すべてのレプリケーション機能を再起動します。
hbase> start_replication
停止レプリケーション すべてのレプリケーション機能を停止します。
hbase>stop_replication

よくあるご質問

対話型 HBase シェルを終了してオペレーティングシステムのプロンプトに戻るには、「exit」または「quit」と入力して Enter キーを押します。シェルは hbase シェルコマンドで開きます。「exit」と「quit」は HBase サービスを停止するのではなく、シェルセッションを終了するだけです。

はい。コマンドをパイプで非対話的に渡すことができます。例えば、`echo “list” | hbase shell` のように記述したり、保存したファイルを `hbase shell script.txt` のように実行したりできます。シェルは JRuby ベースなので、.rb スクリプトファイル内に Ruby のロジックやループを埋め込むことも可能です。

シェルは、素早い手動コマンドと管理を行うための対話型JRubyプロンプトです。 Java Connection、Admin、Tableを使用するAPIは、テーブルを作成し、プログラムによってデータを読み書きするアプリケーション向けです。どちらも同じHBaseクラスタとデータにアクセスします。

「テーブルが既に存在します」エラーは、作成時に既存の名前を繰り返すと発生し、「テーブルが無効になっていません」エラーは、無効化せずに削除または変更すると発生します。削除または変更を行う前に、disable 'table' を実行し、作成前に exists 'table' を使用して名前を確認してください。

HBaseのカラムファミリーは、セルごとに限られた数のタイムスタンプ付きバージョンを保持します。従来は3つでしたが、新しいリリースでは1つになっています。作成時または変更時にVERSIONSでカウントを設定し、getコマンドまたはscanコマンドで{VERSIONS => n}を使用して古いバージョンを要求してください。

テーブル参照変数は、`g = get_table 'guru99'` によって返されるシェルオブジェクトです。テーブル名を繰り返す代わりに、`g.put`、`g.get`、`g.count`などのメソッドを呼び出すことができます。これは、HBaseシェルにおけるJRubyスタイルの便利なショートカットです。

AIコーディングアシスタントと大規模言語モデルは、平易な言語によるリクエストからHBaseシェルコマンドを生成し、スキャンフィルタやTTLなどの馴染みのないオプションを説明し、エラーのデバッグを支援します。機械学習はクラスタメトリクスを分析してレプリケーションとリージョンのチューニングをガイドしますが、各コマンドはエンジニアが確認する必要があります。

Yes. GitHubコパイロット 短いコメントから、HBaseのシェルコマンドやJRubyスクリプトを提案します。これには、作成、配置、スキャン、変更などの例が含まれます。 Rev実際のクラスタで実行する前に、正しいテーブル名、カラムファミリー、およびVERSIONSなどの構文について出力を確認してください。