Table Store HBase Client は HBase Client 1.0.0 以降のバージョンの API をサポートします。

以前のバージョンと比較して、HBase Client 1.0.0 には、以前のバージョンの HBase Client と互換性のない大きな変更があります。

バージョン 0.x.x (つまり、1.0.0 より前のバージョン) の HBase Client を使用している場合、ここでは HBase Client のバージョンを Table Store と統合する方法について説明します。

接続 API

HBase 1.0.0 以降のバージョンは HConnection API をキャンセルし、代わりに org.apache.hadoop.hbase.client.ConnectionFactory シリーズを使用します。 Connection API を提供し、ConnectionManager と HConnectionManager を ConnectionFactoryに置き換えです。

接続 API の作成は比較的コストがかかりますが、接続 API はスレッドの安全性を保証します。 Connection API を使用する場合、プログラム内に生成できる Connection オブジェクトは1つだけです。 複数のスレッドがこのオブジェクトを共有できます。

また、Connection のライフサイクルを管理し、使用後に閉じる必要があります。

最新のコードは次のとおりです。

Connection connection = ConnectionFactory.createConnection(config);
// ...
connection.close();

TableName シリーズ

HBase バージョン 1.0.0 以前では、テーブルを作成するときに String 型の名前を使用できます。 それ以降のバージョンの HBase では、 org.apache.hadoop.hbase.TableName を使用できます。

最新のコードは次のとおりです。

String tableName = "MyTable";
// or byte[] tableName = Bytes.toBytes("MyTable");
TableName tableNameObj = TableName.valueOf(tableName);

Table、BufferedMutator および RegionLocator の各 API

HBase Client v1.0.0 から、HTable API は Table、BufferedMutator および RegionLocator の各 API に置き換えられました。

  • org.apache.hadoop.hbase.client.Table は、単一のテーブルに対する読み取り、書き込み、その他の要求を操作するために使用されます。

  • org.apache.hadoop.hbase.client.BufferedMutator は、非同期バッチ書き込みに使用されます。 このAPIは、以前のバージョンの HTableInterface API の setAutoFlush(boolean) に対応しています。

  • org.apache.hadoop.hbase.client.RegionLocator は、テーブルパーティション情報を示します。

Table、BufferedMutator および RegionLocator の各 API は、スレッドの安全性を保証するものではありません。 ただし、これらは軽量であり、各スレッドのオブジェクトを作成するために使用できます。

管理 API

HBase Client v1.0.0 から、HBaseAdmin API は org.apache.hadoop.hbase.client.Admin に置き換えられました。 Table Store はクラウドサービスであり、ほとんどの運用および保守 API は自動的に処理されるため、ほとんどの管理 API はサポートされていません。 詳細については、「Table Store と HBase の違い」をご参照ください。

Connection インスタンスを使用して管理者インスタンスを作成します。

Admin admin = connection.getAdmin();