Obiettivi
Questo tutorial ti mostra come:
- Creare un cluster Dataproc, installando Apache HBase e Apache ZooKeeper sul cluster
- Creare una tabella HBase utilizzando la shell HBase in esecuzione sul nodo master del cluster Dataproc
- Usa Cloud Shell per inviare un job Java o PySpark Spark al servizio Dataproc che scrive i dati e poi li legge nella tabella HBase.
Costi
In questo documento vengono utilizzati i seguenti componenti fatturabili di Google Cloud:
Per generare una stima dei costi in base all'utilizzo previsto,
utilizza il Calcolatore prezzi.
Prima di iniziare
Se non l'hai ancora fatto, crea un progetto per la Google Cloud Platform.
- Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
Abilita le API Dataproc and Compute Engine.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
Abilita le API Dataproc and Compute Engine.
Crea un cluster Dataproc
Esegui questo comando in un terminale di sessione Cloud Shell per:
- Installa i componenti HBase e ZooKeeper.
- Esegui il provisioning di tre nodi worker (sono consigliati da tre a cinque worker per eseguire il codice in questo tutorial)
- Attiva il gateway dei componenti
- Utilizza immagine versione 2.0
- Utilizza il flag
--properties
per aggiungere la configurazione HBase e la libreria HBase al driver Spark ed ai percorsi delle classi dell'esecutore.
gcloud dataproc clusters create cluster-name \ --region=region \ --optional-components=HBASE,ZOOKEEPER \ --num-workers=3 \ --enable-component-gateway \ --image-version=2.0 \ --properties='spark:spark.driver.extraClassPath=/etc/hbase/conf:/usr/lib/hbase/*,spark:spark.executor.extraClassPath=/etc/hbase/conf:/usr/lib/hbase/*'
Verifica l'installazione del connettore
Dalla console Google Cloud o dal terminale di sessione Cloud Shell, esegui SSH nel nodo master del cluster Dataproc.
Verifica l'installazione del connettore Spark HBase di Apache sul nodo master:
ls -l /usr/lib/spark/jars | grep hbase-spark
Esempio di output:-rw-r--r-- 1 root root size date time hbase-spark-connector.version.jar
Tieni aperto il terminale di sessione SSH per:
- Crea una tabella HBase
- (Utenti Java): esegui comandi sul nodo master del cluster per determinare le versioni dei componenti installati sul cluster
- Scansiona la tabella Hbase dopo aver eseguito il codice
Crea una tabella HBase
Esegui i comandi elencati in questa sezione nel terminale di sessione SSH del nodo master che hai aperto nel passaggio precedente.
Apri la shell di HBase:
hbase shell
Crea un valore HBase "my-table" con una famiglia di colonne "cf":
create 'my_table','cf'
- Per confermare la creazione della tabella, nella console Google Cloud fai clic su HBase nei link del gateway dei componenti della console Google Cloud per aprire l'interfaccia utente di Apache HBase.
my-table
è elencato nella sezione Tabelle della Home page.
- Per confermare la creazione della tabella, nella console Google Cloud fai clic su HBase nei link del gateway dei componenti della console Google Cloud per aprire l'interfaccia utente di Apache HBase.
Visualizza il codice Spark
Java
Python
Esegui il codice
Apri un terminale di sessione Cloud Shell.
Clona il repository GitHub GoogleCloudDataproc/cloud-dataproc nel terminale di sessione Cloud Shell:
git clone https://github.com/GoogleCloudDataproc/cloud-dataproc.git
Passa alla directory
cloud-dataproc/spark-hbase
:cd cloud-dataproc/spark-hbase
Esempio di output:user-name@cloudshell:~/cloud-dataproc/spark-hbase (project-id)$
Invia il job di Dataproc.
Java
- Imposta le versioni dei componenti nel file
pom.xml
.- Nella pagina Versioni release 2.0.x di Dataproc sono elencate le versioni dei componenti Scala, Spark e HBase installate con le ultime quattro versioni secondarie di Image 2.0.
- Per trovare la versione secondaria del cluster della versione immagine 2.0, fai clic sul nome del cluster nella pagina Cluster della console Google Cloud per aprire la pagina Dettagli cluster, in cui è indicata la Versione immagine del cluster.
- Per trovare la versione secondaria del cluster della versione immagine 2.0, fai clic sul nome del cluster nella pagina Cluster della console Google Cloud per aprire la pagina Dettagli cluster, in cui è indicata la Versione immagine del cluster.
- In alternativa, puoi eseguire i comandi seguenti in un terminale di sessione SSH dal nodo master del tuo cluster per determinare le versioni dei componenti:
- Controlla la versione di Scala:
scala -version
- Controlla la versione di Spark (Ctrl-D per uscire):
spark-shell
- Controlla la versione di HBase:
hbase version
- Identifica le dipendenze delle versioni Spark, Scala e HBase
in Maven
pom.xml
:<properties> <scala.version>scala full version (for example, 2.12.14)</scala.version> <scala.main.version>scala main version (for example, 2.12)</scala.main.version> <spark.version>spark version (for example, 3.1.2)</spark.version> <hbase.client.version>hbase version (for example, 2.2.7)</hbase.client.version> <hbase-spark.version>1.0.0(the current Apache HBase Spark Connector version)> </properties>
Nota:hbase-spark.version
è la versione attuale del connettore Spark HBase; lascia invariato questo numero di versione.
- Controlla la versione di Scala:
- Modifica il file
pom.xml
nell'editor di Cloud Shell per inserire i numeri di versione di Scala, Spark e HBase corretti. Al termine della modifica, fai clic su Apri terminale per tornare alla riga di comando del terminale Cloud Shell.cloudshell edit .
- Passa a Java 8 in Cloud Shell. Questa versione di JDK è necessaria per
creare il codice (puoi ignorare gli eventuali messaggi di avviso relativi ai plug-in):
sudo update-java-alternatives -s java-1.8.0-openjdk-amd64 && export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
- Verifica l'installazione di Java 8:
java -version
Esempio di output:openjdk version "1.8..."
- Nella pagina Versioni release 2.0.x di Dataproc sono elencate le versioni dei componenti Scala, Spark e HBase installate con le ultime quattro versioni secondarie di Image 2.0.
- Crea il file
jar
:mvn clean package
Il file.jar
si trova nella sottodirectory/target
, ad esempiotarget/spark-hbase-1.0-SNAPSHOT.jar
. Invia il job.
gcloud dataproc jobs submit spark \ --class=hbase.SparkHBaseMain \ --jars=target/filename.jar \ --region=cluster-region \ --cluster=cluster-name
--jars
: inserisci il nome del file.jar
dopo "target/" e prima di ".jar".- Se non hai impostato i classpath HBase del driver ed esecutore Spark quando hai creato il cluster, devi impostarli per ogni invio del job includendo il seguente flag
‑‑properties
nel comando di invio del job:--properties='spark.driver.extraClassPath=/etc/hbase/conf:/usr/lib/hbase/*,spark.executor.extraClassPath=/etc/hbase/conf:/usr/lib/hbase/*'
Visualizza l'output della tabella HBase nell'output del terminale della sessione Cloud Shell:
Waiting for job output... ... +----+----+ | key|name| +----+----+ |key1| foo| |key2| bar| +----+----+
Python
Invia il job.
gcloud dataproc jobs submit pyspark scripts/pyspark-hbase.py \ --region=cluster-region \ --cluster=cluster-name
- Se non hai impostato i classpath HBase del driver ed esecutore Spark quando hai creato il cluster, devi impostarli per ogni invio del job includendo il seguente flag
‑‑properties
nel comando di invio del job:--properties='spark.driver.extraClassPath=/etc/hbase/conf:/usr/lib/hbase/*,spark.executor.extraClassPath=/etc/hbase/conf:/usr/lib/hbase/*'
- Se non hai impostato i classpath HBase del driver ed esecutore Spark quando hai creato il cluster, devi impostarli per ogni invio del job includendo il seguente flag
Visualizza l'output della tabella HBase nell'output del terminale della sessione Cloud Shell:
Waiting for job output... ... +----+----+ | key|name| +----+----+ |key1| foo| |key2| bar| +----+----+
Analizza la tabella HBase
Puoi analizzare i contenuti della tabella HBase eseguendo i seguenti comandi nel terminale di sessione SSH del nodo master che hai aperto in Verifica l'installazione del connettore:
- Apri la shell di HBase:
hbase shell
- Scansiona "my-table":
scan 'my_table'
Esempio di output:ROW COLUMN+CELL key1 column=cf:name, timestamp=1647364013561, value=foo key2 column=cf:name, timestamp=1647364012817, value=bar 2 row(s) Took 0.5009 seconds
Esegui la pulizia
Al termine del tutorial, puoi eseguire la pulizia delle risorse che hai creato in modo che smettano di utilizzare la quota e smettano di essere addebitati. Le sezioni seguenti descrivono come eliminare o disattivare queste risorse.
Elimina il progetto
Il modo più semplice per eliminare la fatturazione è eliminare il progetto che hai creato per il tutorial.
Per eliminare il progetto:
- Nella console Google Cloud, vai alla pagina Gestisci risorse.
- Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
- Nella finestra di dialogo, digita l'ID del progetto e fai clic su Chiudi per eliminare il progetto.
Eliminare il cluster
- Per eliminare il cluster:
gcloud dataproc clusters delete cluster-name \ --region=${REGION}