このトピックでは、LindormTable に接続して使用する方法について説明します。
前提条件
- LindormTable のバージョンは 2.4.3 以降です。 LindormTable のバージョンの表示またはアップグレード方法の詳細については、LindormTable のリリースノートおよびLindorm インスタンスのマイナーエンジンバージョンのアップグレードをご参照ください。
- クライアントの IP アドレスが Lindorm インスタンスのホワイトリストに追加されています。 詳細については、ホワイトリストの設定をご参照ください。
- Java 用 HBase API の LindormTable エンドポイントが取得されています。 エンドポイントの表示方法の詳細については、エンドポイントの表示をご参照ください。
使用上の注意
インターネット経由で Lindorm インスタンスに接続する場合、またはアクセスする Lindorm インスタンスがシングルノード Lindorm インスタンスである場合は、このトピックで説明されている操作を実行する前に、SDK をアップグレードし、設定を変更する必要があります。 詳細については、Java 用 ApsaraDB for HBase API を使用して LindormTable に接続し、使用するのステップ 1 をご参照ください。
- アプリケーションが Elastic Compute Service (ECS) インスタンスにデプロイされている場合は、ネットワーク接続を確保するために、Lindorm インスタンスと ECS インスタンスが事前に次の要件を満たしていることを確認してください。
- Lindorm インスタンスと ECS インスタンスは同じリージョンにデプロイされています。 ネットワークレイテンシを削減するために、2 つのインスタンスを同じゾーンにデプロイすることをお勧めします。
- Lindorm インスタンスと ECS インスタンスは同じ VPC にデプロイされています。
Hive での接続パラメータの設定
方法 1: hive-site.xml ファイルに接続設定を追加します。
<configuration>
<property>
<name>hbase.zookeeper.quorum</name>
<!--
Java 用 HBase API の LindormTable エンドポイント
-->
<value>ld-bp1461s38p7y9****-proxy-lindorm.lindorm.rds.aliyuncs.com:30020</value>
</property>
</configuration>
方法 2: Hive クライアントでコマンドを実行します。
// Java 用 HBase API の LindormTable エンドポイントを指定します。
set hbase.zookeeper.quorum=ld-bp1461s38p7y9****-proxy-lindorm.lindorm.rds.aliyuncs.com:30020
手順
- 接続する Lindorm インスタンスの LindormTable エンドポイントを Hive クライアントで設定します。
hive // Java 用 HBase API の LindormTable エンドポイントを指定します。 set hbase.zookeeper.quorum=ld-bp1461s38p7y9****-proxy-lindorm.lindorm.rds.aliyuncs.com:30020
- Lindorm インスタンスに hive_hbase_table という名前のテーブルを作成します。
CREATE 'hive_hbase_table','cf1'
- Hive に外部テーブルを作成します。
CREATE EXTERNAL TABLE hive_hbase_table(key int, value string) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf1:val") TBLPROPERTIES ("hbase.table.name" = "hive_hbase_table", "hbase.mapred.output.outputtable" = "hive_hbase_table");
返された情報に OK が含まれている場合、外部テーブルが作成されます。
- 外部テーブルにデータを挿入し、データが挿入されたかどうかを確認します。
- Hive の外部テーブルにデータを挿入し、Lindorm にデータが挿入されたかどうかを確認します。
外部テーブルにデータを挿入します。
insert into hive_hbase_table values(212,'bab');
Lindorm で、外部テーブルにデータが挿入されたかどうかを確認します。scan 'hive_hbase_table'
次の結果が返されます。ROW COLUMN+CELL 212 column=cf1:val, timestamp=2023-03-13T15:35:10.270, value=bab
- Lindorm の hive_hbase_table テーブルにデータを挿入し、Hive にデータが挿入されたかどうかを確認します。hive_hbase_table テーブルにデータを挿入します。
put 'hive_hbase_table','213','cf1:val','dadsadasda'
Hive で、hive_hbase_table テーブルにデータが挿入されたかどうかを確認します。SELECT * FROM hive_hbase_table;
次の結果が返されます。212 bab 213 dadsadasda
- Hive の外部テーブルにデータを挿入し、Lindorm にデータが挿入されたかどうかを確認します。
重要 Hive を使用して Lindorm 内のファイルを直接読み取ることはできません。 ただし、Hive の外部テーブルを作成または関連付けて、Lindorm からデータを読み取ったり、Lindorm にデータを書き込んだりすることはできます。