Thrift を使用して、ApsaraDB for HBase Performance-enhanced Edition クラスターへの多言語アクセスを有効にすることができます。
前提条件
クラスターのエンドポイントを取得済みであること。詳細については、「パブリックエンドポイントを申請する」をご参照ください。
背景情報
Thrift 1 インターフェースは認証をサポートしていません。コアノードごとに最大 1,000 接続をサポートします。
Thrift 2 では、HTTPClient を使用する場合にのみ、ApsaraDB for HBase Performance-enhanced Edition クラスターにアクセスできます。ユーザー名とパスワードを指定する必要があります。
Thrift の使用方法の詳細については、Apache Thrift の公式ドキュメントをご参照ください。
手順
Thrift インストールパッケージをダウンロードします。
説明一部のプログラミング言語は、依存関係を管理するためのメソッドを提供しています。これらのプログラミング言語に基づいて Thrift をインストールできます。たとえば、
pip install thriftコマンドを実行して Python 用に Thrift をインストールするか、import {"github.com/apache/thrift/lib/go/thrift"}を Go コードに直接追加できます。ApsaraDB for HBase の Thrift 2 定義ファイルをダウンロードします。
指定されたプログラミング言語のインターフェース定義ファイルを生成します。
手順 1 でダウンロードした
thrift-0.12.0.tar.gzパッケージを解凍します。詳細については、「Thrift インストールガイド」をご参照ください。コマンドラインインターフェース(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
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 クラスターにアクセスできます。
Python:サンプルコードをダウンロードする
C++:サンプルコードをダウンロードする
Node.js:サンプルコードをダウンロードする
PHP:サンプルコードをダウンロードする
詳細については、「Apache Thrift チュートリアル」をご参照ください。