Objetivos
Neste tutorial, mostramos como fazer as seguintes tarefas:
- Crie um cluster do Dataproc, instalando o Apache HBase e Apache ZooKeeper no cluster
- Criar uma tabela do HBase usando o shell do HBase em execução no nó mestre do cluster do Dataproc
- Use o Cloud Shell para enviar um job do Java ou do PySpark ao serviço do Dataproc que grava dados e os lê da tabela do HBase.
Custos
Neste documento, você usará os seguintes componentes faturáveis do Google Cloud:
Para gerar uma estimativa de custo baseada na projeção de uso deste tutorial, use a calculadora de preços.
Antes de começar
Se ainda não tiver feito, crie um projeto do Google Cloud Platform.
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Dataproc and Compute Engine APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Dataproc and Compute Engine APIs.
Criar um cluster do Dataproc
Execute o seguinte comando em um do terminal de sessão do Cloud Shell para:
- Instale o HBase e Componentes do ZooKeeper
- Provisione três nós de trabalho (recomenda-se de três a cinco workers para executar o código neste tutorial)
- Ative o Gateway de componentes.
- Usar a versão 2.0 da imagem
- Use a flag
--properties
para adicionar a configuração e a biblioteca do HBase ao caminho de classe do driver e do executor do Spark.
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/*'
Verificar a instalação do conector
No console do Google Cloud ou em um terminal de sessão do Cloud Shell, Conecte-se por SSH ao nó mestre do cluster do Dataproc.
Verifique a instalação do conector Apache HBase Spark no nó mestre:
Exemplo de saída:ls -l /usr/lib/spark/jars | grep hbase-spark
-rw-r--r-- 1 root root size date time hbase-spark-connector.version.jar
Mantenha o terminal da sessão SSH aberto para:
- Criar uma tabela do HBase
- (Usuários do Java): execute comandos no nó mestre do cluster para determinar as versões dos componentes instalados no cluster.
- Faça a varredura da tabela do HBase depois de executar o código.
Criar uma tabela do HBase
Execute os comandos listados nesta seção no terminal da sessão SSH do nó mestre que você abriu na etapa anterior.
Abra o shell do HBase:
hbase shell
Criar um "my-table" do HBase com um "cf" grupo de colunas:
create 'my_table','cf'
- Para confirmar a criação da tabela, no console do Google Cloud, clique em HBase
nos links do gateway de componentes do console do Google Cloud
para abrir a interface do Apache HBase.
my-table
é listado na seção Tabelas na página Início.
- Para confirmar a criação da tabela, no console do Google Cloud, clique em HBase
nos links do gateway de componentes do console do Google Cloud
para abrir a interface do Apache HBase.
Conferir o código do Spark
Java
Python
Executar o código
Abra um terminal de sessão do Cloud Shell.
Clone o repositório do GitHub GoogleCloudDataproc/cloud-dataproc no terminal da sessão do Cloud Shell:
git clone https://github.com/GoogleCloudDataproc/cloud-dataproc.git
Altere para o diretório
cloud-dataproc/spark-hbase
: Exemplo de saída:cd cloud-dataproc/spark-hbase
user-name@cloudshell:~/cloud-dataproc/spark-hbase (project-id)$
Envie o job do Dataproc.
Java
- Defina as versões dos componentes no arquivo
pom.xml
.- A página versões de lançamento do Dataproc 2.0.x
lista as versões dos componentes Scala, Spark e HBase instaladas
com as quatro últimas versões de submenor da imagem 2.0.
- Para encontrar a versão subsecundária do cluster da versão de imagem 2.0, faça o seguinte: clique no nome do cluster a página Clusters na Console do Google Cloud para abrir a página Detalhes do cluster, em que o a Versão da imagem do cluster está listada.
- Como alternativa, você pode executar os seguintes comandos em um
Terminal de sessão SSH
do nó mestre do cluster para determinar as versões dos componentes:
- Verificar a versão da escala:
scala -version
- Verifique a versão do Spark (pressione Ctrl-D para sair):
spark-shell
- Verifique a versão do HBase:
hbase version
- Identifique as dependências da versão do Spark, Scala e HBase
no Maven
pom.xml
: Observação: o<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>
hbase-spark.version
é a versão atual do conector Spark HBase. Deixe esse número de versão inalterado.
- Verificar a versão da escala:
- Edite o arquivo
pom.xml
no editor do Cloud Shell para inserir os números de versão corretos do Scala, do Spark e do HBase. Clique em Abrir terminal quando terminar de editar para voltar à linha de comando do terminal do Cloud Shell.cloudshell edit .
- Mude para o Java 8 no Cloud Shell. Esta versão do JDK é necessária para
criar o código. Você pode ignorar as mensagens de aviso do plug-in:
sudo update-java-alternatives -s java-1.8.0-openjdk-amd64 && export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
- Verifique a instalação do Java 8:
Exemplo de saída:java -version
openjdk version "1.8..."
- A página versões de lançamento do Dataproc 2.0.x
lista as versões dos componentes Scala, Spark e HBase instaladas
com as quatro últimas versões de submenor da imagem 2.0.
- Crie o arquivo
jar
: O arquivomvn clean package
.jar
é colocado no subdiretório/target
(por exemplo,target/spark-hbase-1.0-SNAPSHOT.jar
. Envie o job.
gcloud dataproc jobs submit spark \ --class=hbase.SparkHBaseMain \ --jars=target/filename.jar \ --region=cluster-region \ --cluster=cluster-name
--jars
: insira o nome do arquivo.jar
após "target/". e antes de ".jar".- Se você não tiver definido os caminhos de classe do HBase do driver do Spark e do executor ao
criou seu cluster;
você deve defini-los em cada envio de trabalho, incluindo o
a seguinte sinalização
‑‑properties
no comando de envio do job:--properties='spark.driver.extraClassPath=/etc/hbase/conf:/usr/lib/hbase/*,spark.executor.extraClassPath=/etc/hbase/conf:/usr/lib/hbase/*'
Veja a saída da tabela do HBase na saída do terminal de sessão do Cloud Shell:
Waiting for job output... ... +----+----+ | key|name| +----+----+ |key1| foo| |key2| bar| +----+----+
Python
Envie o job.
gcloud dataproc jobs submit pyspark scripts/pyspark-hbase.py \ --region=cluster-region \ --cluster=cluster-name
- Se você não tiver definido os classpaths do HBase do driver e do executor do Spark ao
criar o cluster,
defina-os com cada envio de job incluindo a
seguinte flag
‑‑properties
no comando de envio de job:--properties='spark.driver.extraClassPath=/etc/hbase/conf:/usr/lib/hbase/*,spark.executor.extraClassPath=/etc/hbase/conf:/usr/lib/hbase/*'
- Se você não tiver definido os classpaths do HBase do driver e do executor do Spark ao
criar o cluster,
defina-os com cada envio de job incluindo a
seguinte flag
Confira a saída da tabela do HBase na saída do terminal da sessão do Cloud Shell:
Waiting for job output... ... +----+----+ | key|name| +----+----+ |key1| foo| |key2| bar| +----+----+
Verifique a tabela do HBase
É possível verificar o conteúdo da tabela HBase executando os seguintes comandos no terminal da sessão SSH do nó mestre que você abriu em Verificar a instalação do conector:
- Abra o shell do HBase:
hbase shell
- Verifique "my-table":
Exemplo de saída:scan 'my_table'
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
Limpar
Depois de concluir o tutorial, você pode limpar os recursos que criou para que eles parem de usar a cota e gerar cobranças. Nas seções a seguir, você aprenderá a excluir e desativar esses recursos.
Exclua o projeto
O jeito mais fácil de evitar cobranças é excluindo o projeto que você criou para o tutorial.
Para excluir o projeto, faça o seguinte:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Excluir o cluster
- Para excluir o cluster:
gcloud dataproc clusters delete cluster-name \ --region=${REGION}