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

ApsaraDB for HBase:多言語 API を使用して ApsaraDB for HBase Performance-enhanced Edition クラスターにアクセスする

最終更新日:Jan 16, 2025

Thrift を使用して、ApsaraDB for HBase Performance-enhanced Edition クラスターへの多言語アクセスを有効にすることができます。

前提条件

クラスターのエンドポイントを取得済みであること。詳細については、「パブリックエンドポイントを申請する」をご参照ください。

背景情報

  • Thrift 1 インターフェースは認証をサポートしていません。コアノードごとに最大 1,000 接続をサポートします。

  • Thrift 2 では、HTTPClient を使用する場合にのみ、ApsaraDB for HBase Performance-enhanced Edition クラスターにアクセスできます。ユーザー名とパスワードを指定する必要があります。

  • Thrift の使用方法の詳細については、Apache Thrift の公式ドキュメントをご参照ください。

手順

  1. Thrift インストールパッケージをダウンロードします。

    説明

    一部のプログラミング言語は、依存関係を管理するためのメソッドを提供しています。これらのプログラミング言語に基づいて Thrift をインストールできます。たとえば、pip install thrift コマンドを実行して Python 用に Thrift をインストールするか、import {"github.com/apache/thrift/lib/go/thrift"} を Go コードに直接追加できます。

  2. ApsaraDB for HBase の Thrift 2 定義ファイルをダウンロードします。

  3. 指定されたプログラミング言語のインターフェース定義ファイルを生成します。

    1. 手順 1 でダウンロードした thrift-0.12.0.tar.gz パッケージを解凍します。詳細については、「Thrift インストールガイド」をご参照ください。

    2. コマンドラインインターフェース(CLI)で、展開された thrift-0.12.0 ファイルを開き、次のコマンドを実行してインターフェース定義ファイルを生成します。

       thrift --gen <language> Hbase.thrift

      例:

      thrift --gen php Hbase.thrift 
      thrift --gen cpp Hbase.thrift 
      thrift --gen py Hbase.thrift
  4. ApsaraDB for HBase Performance-enhanced Edition クラスターにアクセスするためのクライアントを初期化します。

    説明
    • ApsaraDB for HBase Performance-enhanced Edition の Thrift サーバーのトランスポート層では HTTP が使用されます。したがって、クライアントを初期化するときは、Thrift の ThttpClient が必要です。アクセス制御リスト(ACL)が有効になっている場合は、ユーザー名とパスワードを認証のためにサーバーに送信するために、ThttpClient に 2 つのヘッダーを追加する必要があります。

    • Thrift では、言語の関数を呼び出して、ThttpClient でカスタムヘッダーを指定できます。

    次の例は、Python を使用してクライアントを初期化し、接続文字列、ユーザー名、およびパスワードを設定する方法を示しています。

    # -*- coding: utf-8  -*-
    # pip install thrift コマンドを実行して、以下のモジュールを取得できます。
    from thrift.protocol import TBinaryProtocol
    from thrift.transport import THttpClient
    
    # 次のモジュールは、thrift --gen py hbase.thrift コマンドによって生成されます。
    from hbase import THBaseService
    from hbase.ttypes import TColumnValue, TColumn, TTableName, TTableDescriptor, TColumnFamilyDescriptor, TNamespaceDescriptor, TGet, TPut, TScan
    
    # エンドポイント
    url = "http://host:9190"
    transport = THttpClient.THttpClient(url)
    headers = {}
    # ユーザー名
    headers["ACCESSKEYID"]="testuser";
    # パスワード
    headers["ACCESSSIGNATURE"]="password"
    transport.setCustomHeaders(headers)
    protocol = TBinaryProtocol.TBinaryProtocolAccelerated(transport)
    client = THBaseService.Client(protocol)
    transport.open()
    # 操作。接続は最終的に閉じられます。
    transport.close()

関連リソース

さまざまなプログラミング言語のデモコードが GitHub にアップロードされています。コードには、Thrift 定義ファイルと、特定のプログラミング言語でサポートされている依存ライブラリが含まれています。GitHub からプログラミング言語固有のコードを直接ダウンロードしてクライアントを初期化し、ApsaraDB for HBase Performance-enhanced Edition クラスターにアクセスできます。

詳細については、「Apache Thrift チュートリアル」をご参照ください。