Lindorm Shellは、Lindormが提供する HBase クライアントツールです。これを使用すると、HBase API for Javaを使用してLindormTableに接続し、テーブルの作成、データの挿入、データのクエリなどの操作を実行できます。このトピックでは、Lindorm Shellをダウンロードし、それを使用してLindormTableに接続する方法について説明します。
前提条件
Java Development Kit(JDK) V1.8以降がインストールされている。
クライアントのIPアドレスが Lindorm インスタンスのホワイトリストに追加されている。詳細については、「ホワイトリストを構成する」をご参照ください。
使用上の注意
Lindorm Shellを使用してLindormTableに接続した後、実行できるのは単純なDDL操作、データ読み取り操作、およびデータ書き込み操作のみです。詳細については、「制限」をご参照ください。
SQLを使用して作成されたワイドテーブルにアクセスするために HBase API を使用しないでください。
Lindorm Shellを使用してLindormTableに接続する場合は、LinuxまたはmacOS環境にクライアントをデプロイすることをお勧めします。
Windows環境にクライアントをデプロイする場合、ライブラリがないためにエラーが返される可能性があります。この場合は、対応するライブラリファイルをオペレーティングシステムに追加する必要があります。
手順
Lindorm Shellをダウンロードします。
Lindormコンソールにログインします。ページの左上隅で、Lindormインスタンスがデプロイされているリージョンを選択します。インスタンス一覧 ページで、インスタンスを見つけてインスタンスIDをクリックします。
左側のナビゲーションペインで、[データベース接続] をクリックします。表示されるページで、Wide Table Engine タブをクリックします。
[hbase互換アドレス] をクリックし、[lindorm Shellのダウンロード] をクリックして、Lindorm Shellのパッケージをダウンロードします。
次のコマンドを実行して、ダウンロードしたLindorm Shellのパッケージをターゲットパスに解凍します。この例では、パッケージは alihbase-2.0.18 パスに解凍されます。
tar zxvf hbaseue-shell.tar.gz接続パラメータを構成します。
alihbase-2.0.18/confディレクトリに移動し、hbase-site.xml ファイルを開きます。vi hbase-site.xmlLindormTableへの接続に使用するエンドポイント、ユーザー名、およびパスワードを指定します。
<configuration> <property> <name>hbase.zookeeper.quorum</name> <value>ld-bp17j28j2y7pm****-proxy-lindorm-pub.lindorm.rds.aliyuncs.com:30020</value> </property> <property> <name>hbase.client.username</name> <value>testuser</value> </property> <property> <name>hbase.client.password</name> <value>password</value> </property> </configuration>構成ファイルには、次の接続パラメータを構成できます。
hbase.zookeeper.quorum: このパラメータを、Lindormコンソールの [ワイドテーブルエンジン] タブの [hbase Java APIを使用したアクセス] の後に表示されるLindormTableエンドポイントに置き換えます。
Lindorm Shellが、Lindormインスタンスと同じVPCにあるElastic Compute Service(ECS)インスタンスにデプロイされている場合は、このパラメータをLindormTableのVPCエンドポイントに置き換えます。
Lindorm Shellが、ローカルコンピュータまたはLindormインスタンスと同じリージョンにないECSインスタンスにデプロイされている場合は、このパラメータをLindormTableのパブリックエンドポイントに置き換えます。
hbase.client.username および hbase.client.password: これら2つのパラメータを、LindormTableへの接続に使用するユーザー名とパスワードにそれぞれ置き換えます。パスワードを忘れた場合は、LindormTableの [クラスタ管理システム] でパスワードを変更できます。詳細については、「ユーザーのパスワードを変更する」をご参照ください。
Lindorm Shellを使用してLindormTableに接続します。
alihbase-2.0.18/binパスに移動し、次のコマンドを実行します。./hbase shell次の結果が返された場合、クライアントはLindormTableに接続されています。
Version 2.0.18, r08b8d58a9d6ce89765d5ebe2ddff425aed644c16, Mon Feb 1 12:46:39 CST 2021 Took 0.0034 seconds説明Shellの使用方法の詳細については、「Lindorm Shellリファレンス」セクションをご参照ください。
Lindorm Shellリファレンス
Shellコマンド
Shellコマンドの使用方法の詳細については、「The Apache HBase Shell」をご参照ください。
DDLコマンド
create: テーブルを作成します。
list: Lindorm内のすべてのテーブルを一覧表示します。
disable: テーブルを無効にします。
is_disabled: テーブルが無効になっているかどうかを確認します。
enable: テーブルを有効にします。
is_enabled: テーブルが有効になっているかどうかを確認します。
describe: テーブルの属性とスキーマを含む、特定のテーブルの詳細を記述します。
alter: テーブルのスキーマを変更します。
exists: テーブルが存在するかどうかを確認します。
drop: テーブルを削除します。
DMLコマンド
put: 特定の列の値を更新します。
get: 特定の行または列の値を取得します。
delete: 特定の列の値を削除します。
deleteall: 行内のすべての列を削除します。
scan: テーブル内のデータをスキャンして返します。
count: テーブル内の列の数をカウントして返します。
truncate_preserve: テーブル内のすべてのデータをクリアします。この操作は、テーブルを無効化して削除し、元のテーブルと同じリージョンを持つ新しいテーブルを作成することで実装されます。
Lindorm Shellの開始と終了
Lindorm Shellを開始します。
bin/hbase shellLindorm Shellを終了します。
quit
例
テーブルを作成し、テーブルにデータを挿入する
テーブルを作成します。テーブルと列ファミリの名前を指定する必要があります。
create 'テーブル名', '列ファミリ名'例:
// cfという列ファミリを持つtestという名前のテーブルを作成します。 create 'test', 'cf'テーブルにデータを挿入します。
put 'テーブル名', 'Rowkey', '列ファミリ名:列名', '値'例:
put 'test', 'row1', 'cf:a', 'value1' put 'test', 'row2', 'cf:b', 'value2' put 'test', 'row3', 'cf:c', 'value3'説明前述のコマンドでは、
testはテーブル名、row1はテーブルの行キー、cf:aは列ファミリ名と列名、value1は列の値です。
データをクエリする
すべてのテーブルに関する情報をクエリします。正規表現を使用して、クエリするテーブルをフィルタリングできます。
list list 'abc.*' list 'test'指定されたテーブルのデータをクエリします。
scanコマンドは、HBaseテーブルのデータにアクセスするために使用できます。また、テーブル内のすべてのデータ、または指定された範囲内のデータを柔軟にクエリするためにも使用できます。このコマンドのクエリ速度は、getコマンドよりもわずかに遅くなります。次のコマンドを実行して、testテーブルのデータをクエリできます。scan 'テーブル名'例:
scan 'test'次の結果が返されます。
ROW COLUMN+CELL row1 column=cf:a, timestamp=1421762485768, value=value1 row2 column=cf:b, timestamp=1421762491785, value=value2 row3 column=cf:c, timestamp=1421762496210, value=value3 3 row(s) in 0.0230 secondsテーブル内の特定のデータ行をクエリします。
get 'テーブル名', 'Rowkey'例:
get 'test', 'row1'次の結果が返されます。
COLUMN CELL cf:a timestamp=1421762485768, value=value1 1 row(s) in 0.0350 seconds
テーブルを有効化および無効化する
特定のテーブルを有効または無効にすることができます。テーブルの設定を削除または変更する前に、disable コマンドを実行して、最初にテーブルを無効にする必要があります。削除または変更後、enable コマンドを実行して、このテーブルを有効にすることができます。
disable 'テーブル名'
enable 'テーブル名'テーブルを削除する
特定のテーブルを削除します。
drop 'テーブル名'