接続オブジェクトを作成する
Java 用 Cloud Bigtable HBase クライアントを使用して Bigtable に接続するには、構成プロパティを設定してから、Connection
オブジェクトを作成する必要があります。Connection
オブジェクトの作成は負荷の大きなオペレーションであるため、このオブジェクトの作成数はなるべく少なくしてください。
- レプリケーションを使用する場合、またはアプリ プロファイルを使用してインスタンスへのさまざまな種類のトラフィックを識別する場合、アプリ プロファイルごとに 1 つの
Connection
オブジェクトを作成し、アプリケーション内のスレッド間でこれらのオブジェクトを共有します。 - レプリケーションやアプリ プロファイルを使用しない場合は、単一の
Connection
オブジェクトを作成し、アプリケーション内のスレッド間で共有します。
Connection
オブジェクトの構成設定を指定する方法はいくつかあります。
設定をコードに含める。アプリケーションで複数のアプリ プロファイルを使用する場合(たとえば、複数の機能を使用していて、機能ごとに異なるアプリ プロファイルを使用する場合)は、このオプションを使用する必要があります。
また、このオプションは、アプリケーションのコードで構成設定を保持したい場合や、アプリケーションのリソースとして外部構成ファイルを使用することが現実的でない場合にも使用できます。
hbase-site.xml
ファイルを使用して設定を保存する。このオプションは、アプリケーションで HBase と Bigtable の両方を使用している場合や、Bigtable の構成設定を単独のファイルに保持したい場合に使用します。
次のセクションでは、Connection
オブジェクトを構成して作成するそれぞれの方法について説明します。
設定をコードに含める
次の例は、独自のアプリケーションで Connection
オブジェクトを作成する方法を示しています。[VALUES_IN_BRACKETS]
は、使用するインスタンスでの正しい値に置き換えます。
package com.example.helloworld;
import com.google.cloud.bigtable.hbase.BigtableConfiguration;
import com.google.cloud.bigtable.hbase.BigtableOptionsFactory;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.client.Connection;
public class BigtableHelper {
private static final String PROJECT_ID = "[YOUR_PROJECT_ID]";
private static final String INSTANCE_ID = "[YOUR_INSTANCE_ID]";
// Include the following line if you are using app profiles.
// If you do not include the following line, the connection uses the
// default app profile.
private static final STRING APP_PROFILE_ID = "[YOUR_APP_PROFILE_ID]";
private static Connection connection = null;
public static void connect() throws IOException {
Configuration config = BigtableConfiguration.configure(PROJECT_ID, INSTANCE_ID);
// Include the following line if you are using app profiles.
// If you do not include the following line, the connection uses the
// default app profile.
config.set(BigtableOptionsFactory.APP_PROFILE_ID_KEY, APP_PROFILE_ID);
connection = BigtableConfiguration.connect(config);
}
}
hbase-site.xml ファイルを使用する
このセクションでは、hbase-site.xml
ファイルに構成設定を含めて Connection
オブジェクトを作成する方法について説明します。
サンプルコード
次の例は、独自のアプリケーションで Connection
オブジェクトを構成して作成する方法を示しています。
package com.example.helloworld;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
public class BigtableHelper {
private static Connection connection = null;
public static void connect() throws IOException {
Configuration config = HBaseConfiguration.create();
connection = ConnectionFactory.createConnection(config);
}
}
別の hbase-site.xml
ファイルが JAR ファイルのリソースに含まれています。Configuration
オブジェクトを作成すると、Java 用 Cloud Bigtable HBase クライアントは hbase-site.xml
ファイルから設定を自動的に読み取ります。
次のセクションでは、アプリケーションでこのメソッドを実装する方法について説明します。
hbase-site.xml ファイルの作成
プロジェクトの src/main/resources
ディレクトリに hbase-site.xml
という名前のファイルを作成します。このファイルには、次の例で示しているすべてのプロパティが含まれている必要があります。[VALUES_IN_BRACKETS]
は、使用するインスタンスでの正しい値に置き換えます。
<configuration>
<property>
<name>hbase.client.connection.impl</name>
<value>com.google.cloud.bigtable.hbase1_x.BigtableConnection</value>
</property>
<property>
<name>google.bigtable.project.id</name>
<value>[YOUR_PROJECT_ID]</value>
</property>
<property>
<name>google.bigtable.instance.id</name>
<value>[YOUR_INSTANCE_ID]</value>
</property>
<!--
Include the following property if you are using app profiles.
If you do not include the following property, the connection uses the
default app profile.
-->
<property>
<name>google.bigtable.app_profile.id</name>
<value>[YOUR_APP_PROFILE_ID]</value>
</property>
</configuration>
JAR ファイルへの hbase-site.xml の追加
hbase-site.xml
ファイルを作成した後、ビルド スクリプトを更新してプロジェクトの JAR ファイルに src/main/resources
ディレクトリを含める必要があります。
Maven を使用している場合は、pom.xml
ファイルの <build>
要素を編集してリソースを JAR ファイルにコピーします。
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
Connection オブジェクトの作成
これで、コードを更新して Configuration
オブジェクトを作成できます。このオブジェクトを作成すると、Java 用 Cloud Bigtable HBase クライアントは hbase-site.xml
ファイルから設定を自動的に読み取ります。その後、これらの設定を使用して Connection
オブジェクトを作成できます。
Configuration config = HBaseConfiguration.create();
connection = ConnectionFactory.createConnection(config);