Criar um objeto de conexão
Para se conectar ao Bigtable usando o cliente HBase do Cloud Bigtable
para Java, você precisa definir as propriedades de configuração e criar uma
Objeto Connection
. A criação de um objeto Connection
é
uma operação de grande porte. Portanto, crie o menor número possível desses objetos:
- Caso você use a replicação ou perfis de aplicativo para identificar tipos diferentes de tráfego para a instância, crie um objeto
Connection
por perfil de aplicativo e compartilhe-os entre linhas de execução no aplicativo. - Se você não usa replicação ou perfis de aplicativo, crie um único objeto
Connection
e compartilhe-o entre linhas de execução no aplicativo.
Há algumas maneiras de especificar as definições de configuração para um objeto Connection
:
Incluir as configurações no seu código. Caso o aplicativo use vários perfis de app (por exemplo, caso realize várias funções diferentes, com um perfil de app separado para cada função), você precisará usar essa opção.
Você também poderá usar essa opção se preferir manter definições de configuração no código do aplicativo ou se não for prático incluir um arquivo de configuração externo como um recurso no aplicativo.
Use um arquivo
hbase-site.xml
para armazenar as configurações. Use esta opção caso o aplicativo use o HBase e o Bigtable ou caso você prefira manter as definições de configuração do Bigtable em um arquivo independente.
As seções a seguir explicam cada maneira de configurar e criar um objeto Connection
.
Como incluir configurações no código
O exemplo a seguir mostra como criar um objeto Connection
no seu próprio aplicativo. Substitua [VALUES_IN_BRACKETS]
pelos valores corretos da instância:
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);
}
}
Como usar um arquivo hbase-site.xml
Nesta seção, explicamos como criar um objeto Connection
incluindo as definições de configuração em um arquivo hbase-site.xml
.
Código de amostra
O exemplo a seguir mostra como configurar e criar um objeto Connection
no seu próprio aplicativo:
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);
}
}
Um arquivo hbase-site.xml
separado é incluído nos recursos do arquivo JAR. Quando você cria o objeto Configuration
, o cliente HBase do Cloud Bigtable para Java lê automaticamente as configurações do arquivo hbase-site.xml
.
Veja nas seções a seguir como implementar esse método no seu aplicativo.
Criação do arquivo hbase-site.xml
No diretório src/main/resources
do projeto, crie um arquivo chamado hbase-site.xml
. O arquivo deve conter todas as propriedades mostradas no exemplo a seguir. Substitua [VALUES_IN_BRACKETS]
pelos valores corretos da instância:
<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>
Adição de hbase-site.xml ao arquivo JAR
Depois de criar o arquivo hbase-site.xml
, você precisará atualizar o script de compilação para incluir o diretório src/main/resources
no arquivo JAR do projeto.
Se você estiver usando o Maven, edite o elemento <build>
do arquivo pom.xml
para copiar os recursos para o arquivo JAR:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
Criação do objeto Connection
Agora é possível atualizar seu código para criar um objeto Configuration
. Quando você cria esse objeto, o cliente HBase do Cloud Bigtable para Java lê automaticamente as configurações do arquivo hbase-site.xml
. É possível usar estas configurações para criar um objeto Connection
:
Configuration config = HBaseConfiguration.create();
connection = ConnectionFactory.createConnection(config);
A seguir
- Saiba mais sobre o cliente do HBase para Java.
- Visualize um exemplo "hello world".
- Saiba como usar a biblioteca de cliente.