GSP010
Visão geral
Neste laboratório prático, você aprenderá a usar o Apache Spark no Cloud
Managed Service for Spark para distribuir uma tarefa de processamento de
imagens com alta demanda computacional em um cluster de máquinas. Este
laboratório faz parte de uma série de laboratórios sobre processamento de
dados científicos.
Conteúdo
-
Como criar um cluster gerenciado do Cloud Managed Service for Spark com o
Apache Spark
pré-instalado
-
Como criar e executar jobs que usam pacotes externos que não estão
instalados no cluster
- Como encerrar o cluster
Pré-requisitos
Este é um laboratório de nível avançado. Recomendamos ter
experiência com o Cloud Managed Service for Spark e o Apache Spark, mas isso
não é obrigatório. Para aprender a usar esses serviços, confira os
laboratórios a seguir:
Quando estiver tudo pronto, role a tela para baixo para conhecer melhor os
serviços que você usará no laboratório.
Instalação
Antes de clicar no botão Começar o Laboratório
Leia estas instruções. Os laboratórios são cronometrados e não podem ser pausados. O timer é ativado quando você clica em Iniciar laboratório e mostra por quanto tempo os recursos do Google Cloud vão ficar disponíveis.
Este laboratório prático permite que você realize as atividades em um ambiente real de nuvem, e não em uma simulação ou demonstração. Você vai receber novas credenciais temporárias para fazer login e acessar o Google Cloud durante o laboratório.
Confira os requisitos para concluir o laboratório:
- Acesso a um navegador de Internet padrão (recomendamos o Chrome).
Observação: para executar este laboratório, use o modo de navegação anônima (recomendado) ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e de estudante, o que poderia causar cobranças extras na sua conta pessoal.
- Tempo para concluir o laboratório: não se esqueça que, depois de começar, não será possível pausar o laboratório.
Observação: use apenas a conta de estudante neste laboratório. Se usar outra conta do Google Cloud, você poderá receber cobranças nela.
Como iniciar seu laboratório e fazer login no console do Google Cloud
-
Clique no botão Começar laboratório. Se for preciso pagar por ele, uma caixa de diálogo vai aparecer para você selecionar a forma de pagamento.
À direita, você encontra o painel Configuração e acesso ao laboratório com as seguintes informações:
- O botão Abrir console do Google Cloud
- As credenciais temporárias (nome de usuário e senha) que você vai usar no laboratório
- Outros dados, se necessários
O timer do laboratório fica na parte de cima da página e mostra o tempo restante.
-
Se você estiver usando o navegador Chrome, clique em Abrir console do Google Cloud ou clique com o botão direito do mouse e selecione Abrir link em uma janela anônima.
O laboratório ativa os recursos e depois abre a página "Login" em outra guia.
Dica: coloque as guias em janelas separadas lado a lado.
Observação: se aparecer a caixa de diálogo Escolher uma conta, clique em Usar outra conta.
-
Se necessário, copie o Nome de usuário abaixo e cole na caixa de diálogo Login.
{{{user_0.username | "Username"}}}
Você também encontra o nome de usuário no painel Configuração e acesso ao laboratório.
-
Clique em Avançar.
-
Copie a Senha abaixo e cole na caixa de diálogo Olá!.
{{{user_0.password | "Password"}}}
Você também encontra a senha no painel Configuração e acesso ao laboratório.
-
Clique em Avançar.
Importante: você precisa usar as credenciais fornecidas no laboratório, e não as da sua conta do Google Cloud.
Observação: se você usar sua própria conta do Google Cloud neste laboratório, talvez receba cobranças adicionais.
-
Acesse as próximas páginas:
- Aceite os Termos e Condições.
- Não adicione opções de recuperação nem autenticação de dois fatores (porque essa é uma conta temporária).
- Não se inscreva em testes sem custo financeiro.
Depois de alguns instantes, o console do Google Cloud será aberto nesta guia.
Observação: para acessar os produtos e serviços do Google Cloud, clique no Menu de navegação ou digite o nome do serviço ou produto no campo Pesquisar.
Introdução
Com o Cloud Managed Service for Spark, um serviço Spark e Hadoop gerenciado,
você pode usar ferramentas de dados de código aberto para processamento em
lote, consultas, streaming e machine learning. A automação do Cloud Managed
Service for Spark facilita a criação e o gerenciamento de clusters. Ela também
gera economia porque permite desativar os clusters que não estão em uso. Com
menos tempo e dinheiro gastos com administração, você pode se concentrar nos
jobs e dados.
Use o Cloud Managed Service for Spark para o escalonamento horizontal de jobs
com alta demanda computacional e que têm estas características:
-
O job é totalmente paralelo, ou seja, é possível processar
cada subconjunto de dados em uma máquina diferente.
-
Você tem um código do Apache Spark que faz a computação ou
já tem experiência com o Apache Spark.
-
A distribuição do trabalho é bastante uniforme entre os
subconjuntos de dados.
Quando cada subconjunto exige um nível diferente de processamento (ou para
pessoas sem experiência com o Apache Spark), o
Apache Beam no Cloud Dataflow é uma boa
alternativa porque ele tem pipelines de dados com escalonamento automático.
Neste laboratório, você executará um job que desenha os rostos na imagem
usando um conjunto de regras de processamento especificadas no OpenCV. É
melhor usar a API Vision para
fazer isso, porque regras com códigos escritos manualmente não funcionam muito
bem, mas este laboratório mostra como executar um job com alta demanda
computacional de maneira distribuída.
Tarefa 1. Crie uma máquina de desenvolvimento no Compute Engine
Primeiro, você precisa criar a máquina virtual para hospedar os serviços.
-
No console do Cloud, acesse Compute Engine >
Instâncias de VM > Criar instância.
-
Na Configuração da máquina.
Selecione o seguinte valor:
-
Nome:
devhost
-
Série:
E2
-
Tipo de máquina:
e2-standard-2 (2 vCPUs)
-
Clique em Segurança.
-
Na seção Escopos de acesso, selecione
Permitir acesso completo a todas as APIs do Cloud.
-
Clique em Criar. Esse será seu bastion host
de desenvolvimento.
Teste a tarefa concluída
Clique em Verificar meu progresso para conferir a tarefa
realizada. Se você concluiu a tarefa, receberá uma pontuação de avaliação.
Crie uma máquina de desenvolvimento no Compute Engine.
-
Clique no botão SSH do console para acessar a instância
pelo SSH.
Tarefa 2. Instale o software
Agora configure o software que executará o job. Usando o sbt, uma
ferramenta de build de código aberto, você criará o arquivo JAR do job que
será enviado ao cluster do Cloud Managed Service for Spark. O arquivo JAR
contém o programa e os pacotes necessários para executar o job. O job
detectará rostos em um conjunto de arquivos de imagens armazenado em um bucket
do Google Cloud Storage. Depois, ele gravará arquivos de imagem com os rostos
desenhados no mesmo bucket ou em outro.
-
Configure o "Scala" e o "sbt". Na janela do SSH, execute os comandos abaixo
para instalar o
Scala e o sbt e poder compilar o
código:
sudo apt-get install -y dirmngr unzip
sudo apt-get update
sudo apt-get install -y apt-transport-https
echo "deb https://repo.scala-sbt.org/scalasbt/debian all main" | sudo tee /etc/apt/sources.list.d/sbt.list
echo "deb https://repo.scala-sbt.org/scalasbt/debian /" | sudo tee /etc/apt/sources.list.d/sbt_old.list
curl -sL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x2EE0EA64E40A89B84B2DF73499E82A75642AC823" | sudo apt-key add
sudo apt-get update
sudo apt-get install -y bc scala sbt
Agora crie os arquivos do Feature Detector. O código deste laboratório é uma
pequena modificação de uma solução que existe no repositório do Cloud Managed
Service for Spark no
GitHub.
Depois de fazer o download do código, abra o diretório deste laborátorio com o
comando cd e crie um arquivo JAR completo (ou "fat JAR") do
Feature Detector para poder enviá-lo ao Cloud Managed Service for Spark.
- Execute os comandos abaixo na janela do SSH:
sudo apt-get update
gsutil cp gs://spls/gsp124/cloud-dataproc.zip .
unzip cloud-dataproc.zip
cd cloud-dataproc/codelabs/opencv-haarcascade
-
Faça a compilação. Este comando cria um arquivo "fat JAR" do Feature
Detector para poder enviá-lo ao Cloud Managed Service for Spark:
sbt assembly
Observação: essa etapa demora cerca de cinco minutos ou mais para ser processada. Seja paciente.
Teste a tarefa concluída
Clique em Verificar meu progresso para conferir a tarefa
realizada. Se você concluiu a tarefa, receberá uma pontuação de avaliação.
Instale o software na máquina de desenvolvimento.
Tarefa 3. Crie um bucket do Cloud Storage e colete imagens
Agora que você criou os arquivos do Feature Detector, crie um bucket do Cloud
Storage e adicione algumas imagens de amostra.
- Descubra o "ID do projeto" para usá-lo no nome do bucket:
GCP_PROJECT=$(gcloud config get-value core/project)
-
Dê um nome ao bucket e defina uma variável de shell com esse nome. A
variável de shell será usada nos comandos para indicar o bucket:
MYBUCKET="${USER//google}-image-${RANDOM}"
echo MYBUCKET=${MYBUCKET}
-
Use o programa
gsutil, que faz parte do gcloud no
SDK Cloud, para criar o bucket que armazenará as imagens de amostra:
gsutil mb gs://${MYBUCKET}
Teste a tarefa concluída
Clique em Verificar meu progresso para conferir a tarefa
realizada. Se você tiver concluído a tarefa, receberá uma pontuação de
avaliação.
Crie um bucket do Cloud Storage.
- Faça o download de algumas imagens de amostra para o bucket:
curl https://www.publicdomainpictures.net/pictures/20000/velka/family-of-three-871290963799xUk.jpg | gsutil cp - gs://${MYBUCKET}/imgs/family-of-three.jpg
curl https://www.publicdomainpictures.net/pictures/10000/velka/african-woman-331287912508yqXc.jpg | gsutil cp - gs://${MYBUCKET}/imgs/african-woman.jpg
curl https://www.publicdomainpictures.net/pictures/10000/velka/296-1246658839vCW7.jpg | gsutil cp - gs://${MYBUCKET}/imgs/classroom.jpg
Você fez o download dessas imagens para o bucket do Cloud Storage:



Teste a tarefa concluída
Clique em Verificar meu progresso para conferir a tarefa
realizada. Se você concluiu a tarefa, receberá uma pontuação de avaliação.
Faça o download de algumas imagens de amostra para o bucket.
- Execute este comando para mostrar o conteúdo do bucket:
gsutil ls -R gs://${MYBUCKET}
Saída:
gs://gcpstaging20392-student-image-23218/imgs/:
gs://gcpstaging20392-student-image-23218/imgs/african-woman.jpg
gs://gcpstaging20392-student-image-23218/imgs/classroom.jpg
gs://gcpstaging20392-student-image-23218/imgs/family-of-three.jpg
`
Tarefa 4. Crie um cluster do Cloud Managed Service for Spark
-
Execute os comandos abaixo na janela do SSH para dar um
nome ao cluster e definir a variável
MYCLUSTER. Você usará a
variável nos comandos para indicar o cluster:
MYCLUSTER="${USER/_/-}-qwiklab"
echo MYCLUSTER=${MYCLUSTER}
- Defina uma região global do Compute Engine e crie um novo cluster:
gcloud config set dataproc/region {{{project_0.default_region | "REGION"}}}
gcloud dataproc clusters create ${MYCLUSTER} \
--bucket=${MYBUCKET} \
--worker-machine-type=e2-standard-2 \
--master-machine-type=e2-standard-2 \
--initialization-actions=gs://spls/gsp010/install-libgtk.sh \
--image-version=2.0 \
--worker-boot-disk-size=30GB \
--master-boot-disk-size=30GB
-
Se for preciso usar uma zona em vez de uma região, digite
Y.
Talvez o processo demore alguns minutos. As configurações padrão de cluster,
que incluem dois nós de trabalho, devem ser suficientes para o laboratório.
Usamos e2-standard-2 como os tipos de máquinas worker e mestre
para reduzir o número geral de núcleos que o cluster usa.
Para a flag initialization-actions, transmita um script que
instala a biblioteca libgtk2.0-dev em cada máquina de cluster.
Esta biblioteca é necessária para executar o código.
Observação: se a criação do cluster falhar, exclua o cluster
(gcloud dataproc clusters delete ${MYCLUSTER}) e tente executar
de novo o comando anterior de criação.
Teste a tarefa concluída
Clique em Verificar meu progresso para conferir a tarefa
realizada. Se você concluiu a tarefa, receberá uma pontuação de avaliação.
Crie um cluster do Cloud Managed Service for Spark.
Observação: para aprender como usar flags de linha de comando para personalizar configurações de cluster, consulte a referência "gcloud dataproc clusters create" do SDK Cloud.
Tarefa 5: Envie o job ao Cloud Managed Service for Spark
Neste laboratório, o programa em execução será usado como detector facial. Por
isso, o classificador haar inserido precisa descrever um rosto. O
classificador haar é um arquivo XML usado para descrever os
recursos que o programa deve detectar. Faça o download do
arquivo do classificador "haar"
e inclua o caminho dele para o Cloud Storage no primeiro argumento quando
enviar o job para o cluster do Cloud Managed Service for Spark.
-
Execute o comando a seguir na janela do SSH para carregar o
arquivo de configuração de detecção facial no bucket:
curl https://raw.githubusercontent.com/opencv/opencv/master/data/haarcascades/haarcascade_frontalface_default.xml | gsutil cp - gs://${MYBUCKET}/haarcascade_frontalface_default.xml
-
Use o conjunto de imagens que você enviou para o diretório
imgs do bucket do Cloud Storage como entrada para o Feature
Detector. Você precisa incluir o caminho para esse diretório como o segundo
argumento no comando de envio do job.
- Envie o job ao Cloud Managed Service for Spark:
cd ~/cloud-dataproc/codelabs/opencv-haarcascade
gcloud dataproc jobs submit spark \
--cluster ${MYCLUSTER} \
--jar target/scala-2.12/feature_detector-assembly-1.0.jar -- \
gs://${MYBUCKET}/haarcascade_frontalface_default.xml \
gs://${MYBUCKET}/imgs/ \
gs://${MYBUCKET}/out/
Você pode adicionar outras imagens ao bucket do Cloud Storage especificado no
segundo argumento.
-
Monitore o job. No console, acesse Menu de navegação >
Managed Service for Spark > Jobs.
Passe para a próxima etapa quando você receber uma saída como esta:
Teste a tarefa concluída
Clique em Verificar meu progresso para conferir a tarefa
realizada. Se você concluiu a tarefa, receberá uma pontuação de avaliação.
Envie o job ao Cloud Managed Service for Spark.
-
Quando o job for concluído, acesse Menu de navegação >
Cloud Storage e clique no bucket que você criou. O nome
dele é seu nome de usuário seguido por student-image e um
número aleatório.
-
Clique em uma imagem do diretório Out.
-
Clique no ícone de Download para fazer o download da
imagem para seu computador.
Qual é a precisão da detecção facial? É melhor usar a
API Vision para fazer isso,
porque regras manuais não funcionam muito bem. Confira a seguir como a
detecção funciona.
-
Acesse a pasta imgs do seu bucket e clique nas outras imagens
que você carregou. O download das três imagens de amostra começará. Salve
as imagens no computador.
-
Clique neste link para acessar a página da
API Vision. Role a tela
para baixo até a seção Try the API e faça upload das
imagens que você armazenou no bucket. Você verá o resultado da detecção de
imagem em alguns segundos. Como os modelos de machine learning usados são
continuamente aprimorados, talvez seus resultados sejam diferentes:
-
Se você quiser fazer melhorias no Feature Detector, altere o código
FeatureDetector
e execute novamente os comandos sbt assembly,
gcloud dataproc e jobs submit.
Tarefa 6. testar seu conhecimento
Responda às perguntas de múltipla escolha a seguir para reforçar sua
compreensão dos conceitos abordados neste laboratório. Use tudo o que você
aprendeu até aqui.
Parabéns!
Você aprendeu a ativar um cluster do Cloud Managed Service for Spark e
executar jobs.
Treinamento e certificação do Google Cloud
Esses treinamentos ajudam você a aproveitar as tecnologias do Google Cloud ao máximo. Nossas aulas incluem habilidades técnicas e práticas recomendadas para ajudar você a alcançar rapidamente o nível esperado e continuar sua jornada de aprendizado. Oferecemos treinamentos que vão do nível básico ao avançado, com opções de aulas virtuais, sob demanda e por meio de transmissões ao vivo para que você possa encaixá-las na correria do seu dia a dia. As certificações validam sua experiência e comprovam suas habilidades com as tecnologias do Google Cloud.
Manual atualizado em 7 de julho de 2025
Laboratório testado em 7 de julho de 2025
Copyright 2026 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de produtos e empresas podem ser marcas registradas das respectivas empresas a que estão associados.