Crea un oggetto di connessione
Per connetterti a Bigtable utilizzando il client Cloud Bigtable HBase per Java, devi impostare le proprietà di configurazione e poi creare un oggetto Connection
. La creazione di un oggetto Connection
è un'operazione complessa, quindi crea il minor numero possibile di questi oggetti:
- Se utilizzi la replica o i profili dell'app per identificare diversi tipi di traffico verso la tua istanza, crea un oggetto
Connection
per profilo dell'app e condividilo tra i thread della tua applicazione. - Se non utilizzi la replica o i profili dell'app, crea un singolo oggetto
Connection
e condividilo tra i thread della tua applicazione.
Esistono diversi modi per specificare le impostazioni di configurazione per un oggetto Connection
:
Includi le impostazioni nel codice. Se la tua applicazione utilizza più profili di app (ad esempio, se esegue diverse funzioni con un profilo app separato per ogni funzione), devi utilizzare questa opzione.
Puoi utilizzare questa opzione anche se preferisci mantenere le impostazioni di configurazione nel codice della tua applicazione o se non è pratico includere un file di configurazione esterno come risorsa nella tua applicazione.
Utilizza un file
hbase-site.xml
per memorizzare le impostazioni. Utilizza questa opzione se la tua applicazione utilizza sia HBase sia Bigtable o se preferisci conservare le impostazioni di configurazione di Bigtable in un file autonomo.
Le sezioni seguenti spiegano ogni modo per configurare e creare un oggetto Connection
.
Inclusione delle impostazioni nel codice
L'esempio seguente mostra come creare un oggetto Connection
nella tua applicazione. Sostituisci [VALUES_IN_BRACKETS]
con i valori corretti per la tua istanza:
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);
}
}
Utilizzo di un file hbase-site.xml
Questa sezione spiega come creare un oggetto Connection
includendo le impostazioni di configurazione in un file hbase-site.xml
.
Codice di esempio
L'esempio seguente mostra come configurare e creare un oggetto Connection
nella tua applicazione:
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);
}
}
Un file hbase-site.xml
separato è incluso nelle risorse del file JAR. Quando crei l'oggetto Configuration
, il client Cloud Bigtable HBase per Java legge automaticamente le impostazioni dal file hbase-site.xml
.
Le sezioni seguenti spiegano come implementare questo metodo nella tua applicazione.
Creazione del file hbase-site.xml
Nella directory src/main/resources
del progetto, crea un file denominato
hbase-site.xml
. Il file deve contenere tutte le proprietà mostrate nell'esempio seguente. Sostituisci [VALUES_IN_BRACKETS]
con i valori corretti per la tua istanza:
<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>
Aggiunta di hbase-site.xml al file JAR
Dopo aver creato il file hbase-site.xml
, dovrai aggiornare lo script di compilazione per includere la directory src/main/resources
nel file JAR del progetto.
Se utilizzi Maven, modifica l'elemento <build>
del file pom.xml
per copiare le risorse nel file JAR:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
Creazione dell'oggetto Connection
Ora puoi aggiornare il codice per creare un oggetto Configuration
. Quando crei questo oggetto, il client Cloud Bigtable HBase per Java legge automaticamente le impostazioni dal file hbase-site.xml
. Puoi quindi utilizzare queste impostazioni per creare un oggetto Connection
:
Configuration config = HBaseConfiguration.create();
connection = ConnectionFactory.createConnection(config);
Passaggi successivi
- Scopri di più sul client HBase per Java.
- Visualizza un esempio di "hello world".
- Scopri come utilizzare la libreria client.