Crea un objeto de conexión
Para conectarse a Bigtable con el cliente de HBase de Cloud Bigtable
para Java, debes establecer propiedades de configuración y, luego, crear una
Objeto Connection
. La creación de un objeto Connection
es una operación pesada, así que crea la menor cantidad posible de estos objetos:
- Si usas la replicación o los perfiles de apps para identificar los diferentes tipos de tráfico a la instancia, crea un objeto
Connection
por perfil de app y comparte los objetos entre los subprocesos de la aplicación. - Si no usas la replicación ni los perfiles de apps, crea un solo objeto
Connection
y compártelo entre los subprocesos de la aplicación.
Existen varias formas de especificar la configuración de un objeto Connection
:
Incluye la configuración en el código. Si la aplicación usa varios perfiles (por ejemplo, si ejecuta funciones diferentes con un perfil de app distinto para cada una), debes usar esta opción.
También puedes usar esta opción si prefieres mantener la configuración en el código de la aplicación o si no es práctico incluir un archivo de configuración externo como recurso en la aplicación.
Usa un archivo
hbase-site.xml
para almacenar la configuración. Usa esta opción si la aplicación usa HBase y Bigtable o si prefieres mantener la configuración de Bigtable en un archivo independiente.
En las siguientes secciones, se explican las distintas maneras de configurar y crear un objeto Connection
.
Incluye la configuración en el código
En el siguiente ejemplo, se muestra cómo crear un objeto Connection
en tu propia aplicación. Reemplaza [VALUES_IN_BRACKETS]
por los valores correctos para la instancia:
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);
}
}
Usa un archivo hbase-site.xml
En esta sección, se explica cómo crear un objeto Connection
mediante la inclusión de la configuración en un archivo hbase-site.xml
.
Código de muestra
En el siguiente ejemplo, se muestra cómo configurar y crear un objeto Connection
en tu propia aplicación:
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);
}
}
Se incluye un archivo hbase-site.xml
independiente en los recursos del archivo JAR. Cuando creas el objeto Configuration
, el cliente de HBase de Cloud Bigtable para Java lee de forma automática la configuración del archivo hbase-site.xml
.
En la siguiente sección, se explica cómo implementar este método en la aplicación.
Crea el archivo hbase-site.xml
En el directorio src/main/resources
del proyecto, crea un archivo llamado hbase-site.xml
. Este debería contener todas las propiedades que se muestran en el siguiente ejemplo. Reemplaza [VALUES_IN_BRACKETS]
con los valores correctos para la instancia:
<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>
Agrega hbase-site.xml al archivo JAR
Después de crear el archivo hbase-site.xml
, deberás actualizar la secuencia de comandos de compilación para incluir el directorio src/main/resources
en el archivo JAR del proyecto.
Si usas Maven, edita el elemento <build>
del archivo pom.xml
para copiar los recursos en el archivo JAR:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
Crea el objeto Connection
Ahora puedes actualizar el código para crear un objeto Configuration
. Cuando creas este objeto, el cliente de HBase de Cloud Bigtable para Java lee de forma automática la configuración del archivo hbase-site.xml
. Luego, puedes usar esta configuración para crear un objeto Connection
:
Configuration config = HBaseConfiguration.create();
connection = ConnectionFactory.createConnection(config);
¿Qué sigue?
- Más información sobre el cliente HBase para Java.
- Ver un ejemplo de “hello world”.
- Descubre cómo usar la biblioteca cliente.