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

ApsaraDB for HBase:ApsaraDB for HBase Java API を使用して ApsaraDB for HBase Performance-enhanced Edition インスタンスにアクセスする

最終更新日:Mar 27, 2025

このトピックでは、ApsaraDB for HBase が提供する Java API を使用して ApsaraDB for HBase Performance-enhanced Edition インスタンスにアクセスする方法について説明します。

前提条件

  • ApsaraDB for HBase SDK for Java がインストールされていること。詳細については、「ApsaraDB for HBase SDK for Java をダウンロードする」をご参照ください。

  • 内部ネットワーク経由で ApsaraDB for HBase Performance-enhanced Edition インスタンスに接続する場合、Elastic Compute Service (ECS) インスタンスが購入されていることを確認してください。この ECS インスタンスは、ApsaraDB for HBase Performance-enhanced Edition インスタンスと同じ VPC (Virtual Private Cloud) にデプロイする必要があります。 ECS インスタンスの IP アドレスが ApsaraDB for HBase Performance-enhanced Edition インスタンスのホワイトリストに含まれていることを確認してください。

  • インターネット経由で ApsaraDB for HBase Performance-enhanced Edition インスタンスに接続する場合は、インスタンスに IP アドレスホワイトリストが設定されていることを確認してください。詳細については、「ホワイトリストを構成する」をご参照ください。

  1. クライアント接続構成をコピーします。

    1. ApsaraDB for HBase コンソール にログインします。

    2. [クラスタ] ページで、管理するインスタンスを見つけ、インスタンス ID をクリックします。

      Instances

    3. [インスタンスの詳細] ページの左側のナビゲーションウィンドウで、[データベース接続] をクリックします。

    4. [データベース接続] ページで、[構成項目の生成] をクリックします。 [クライアント接続構成] ダイアログボックスで、[java 構成] タブをクリックし、Java コードをコピーします。

      Java Configuration

  2. クライアントを初期化します。コピーした [java 構成] コードを Java プロジェクトファイルに貼り付けて、クライアントを作成します。

    // Create a Configuration object as the client.
    // クライアントとして Configuration オブジェクトを作成します。
    Configuration conf = HBaseConfiguration.create();
    // Specify the endpoint of your ApsaraDB for HBase instance. In the ApsaraDB for HBase console, navigate to the instance details page and click Database Connection. In the Connection Information section, you can obtain the public endpoint or the VPC-facing endpoint. If you connect to the instance over the Internet, use the public endpoint. If you connect to the instance over a VPC, use the VPC-facing endpoint.
    // ApsaraDB for HBase インスタンスのエンドポイントを指定します。ApsaraDB for HBase コンソールで、インスタンスの詳細ページに移動し、[データベース接続] をクリックします。[接続情報] セクションで、パブリックエンドポイントまたは VPC 向けエンドポイントを取得できます。インターネット経由でインスタンスに接続する場合は、パブリックエンドポイントを使用します。VPC 経由でインスタンスに接続する場合は、VPC 向けエンドポイントを使用します。
    conf.set("hbase.zookeeper.quorum", "ld-xxxx-proxy-hbaseue.hbaseue.xxx.rds.aliyuncs.com:30020");
    // Specify the username and the password that are used to access the instance. By default, the username and the password are root. You can change them as needed.
    // インスタンスへのアクセスに使用するユーザー名とパスワードを指定します。デフォルトでは、ユーザー名とパスワードは root です。必要に応じて変更できます。
    conf.set("hbase.client.username", "root");
    conf.set("hbase.client.password", "root");
    
    // If you add the alihbase-client dependency in your development project, you do not need to configure the connection.impl parameter. If you add the alihbase-connector dependency in your development project, you must configure the connection.impl parameter.
    // 開発プロジェクトで alihbase-client 依存関係を追加する場合、connection.impl パラメータを設定する必要はありません。開発プロジェクトで alihbase-connector 依存関係を追加する場合は、connection.impl パラメータを設定する必要があります。
    //conf.set("hbase.client.connection.impl", AliHBaseUEClusterConnection.class.getName());
    説明

    alihbase-connector V1.x を使用していて、バージョンが 1.0.9 より前の場合、または alihbase-connector V2.x を使用していて、バージョンが 2.0.9 より前の場合は、「クライアントのパラメータを設定する」をご参照ください。

  3. ApsaraDB for HBase インスタンスへの接続を作成します。

    Connection オブジェクトを作成して、Configuration オブジェクトを ApsaraDB for HBase インスタンスに接続します。

    // Create a connection to the ApsaraDB for HBase instance. You need to create only one connection within the client lifecycle. The connection is thread secured and can be shared by all the threads. 
    // ApsaraDB for HBase インスタンスへの接続を作成します。クライアントのライフサイクル内で作成する必要がある接続は 1 つだけです。接続はスレッドセーフであり、すべてのスレッドで共有できます。
    // After the client completes a workload, the Connection object must be closed to prevent connection leaks. 
    // クライアントがワークロードを完了したら、接続リークを防ぐために Connection オブジェクトを閉じる必要があります。
    // You can also execute the try finally statement to prevent connection leaks.
    // try finally 文を実行して接続リークを防ぐこともできます。
    Connection connection = ConnectionFactory.createConnection(conf);
  4. 接続が確立されたら、ApsaraDB for HBase Java API を使用して ApsaraDB for HBase Performance-enhanced Edition インスタンスにアクセスできます。次のセクションでは、Java 形式の例を示します。

    • DDL 文

      try (Admin admin = connection.getAdmin()){
          // Create a table.
          // テーブルを作成します。
          HTableDescriptor htd = new HTableDescriptor(TableName.valueOf("tablename"));
          htd.addFamily(new HColumnDescriptor(Bytes.toBytes("family")));
          // Create a table that has only one partition.
          // パーティションが 1 つだけのテーブルを作成します。
          // We recommend that you pre-split the table based on the data to be stored when you create the table in the production environment.
          // 本番環境でテーブルを作成する場合は、格納されるデータに基づいてテーブルを事前に分割することをお勧めします。
          admin.createTable(htd);
            
          // Disable a table.
          // テーブルを無効にします。
          admin.disableTable(TableName.valueOf("tablename"));
            
          // Truncate a table.
          // テーブルを切り詰めます。
          admin.truncateTable(TableName.valueOf("tablename"), true);
            
          // Delete a table.
          // テーブルを削除します。
          admin.deleteTable(TableName.valueOf("tablename"));
      }
    • DML 文

      // A table is a non-thread-safe object. When a thread performs operations on a table, the thread must obtain the required table object from the connection.
      // テーブルはスレッドセーフではないオブジェクトです。スレッドがテーブルで操作を実行する場合、スレッドは必要なテーブルオブジェクトを接続から取得する必要があります。
      try (Table table = connection.getTable(TableName.valueOf("tablename"))) {
          // Insert data.
          // データを挿入します。
          Put put = new Put(Bytes.toBytes("row"));
          put.addColumn(Bytes.toBytes("family"), Bytes.toBytes("qualifier"), Bytes.toBytes("value"));
          table.put(put);
      
          // Read a single row of data.
          // 1 行のデータを読み取ります。
          Get get = new Get(Bytes.toBytes("row"));
          Result res = table.get(get);
      
          // Delete a row of data.
          // 1 行のデータを削除します。
          Delete delete = new Delete(Bytes.toBytes("row"));
          table.delete(delete);
      
          // Scan the data within the specified range.
          // 指定された範囲内のデータをスキャンします。
          Scan scan = new Scan(Bytes.toBytes("startRow"), Bytes.toBytes("endRow"));
          ResultScanner scanner = table.getScanner(scan);
          for (Result result : scanner) {
              // Process the result.
              // 結果を処理します。
              // ...
          }
          scanner.close();
      }