Neste documento, você usará os seguintes componentes faturáveis do Google Cloud:
- Dataproc
- Compute Engine
- Cloud Scheduler
Para gerar uma estimativa de custo baseada na projeção de uso deste tutorial, use a calculadora de preços.
Antes de começar
Criar o projeto
- Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
-
No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
-
Ative as APIs Dataproc, Compute Engine, and Cloud Scheduler .
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
-
Ative as APIs Dataproc, Compute Engine, and Cloud Scheduler .
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Criar uma função personalizada
- Abra a página IAM e administrador → Papéis
no console do Google Cloud.
- Clique em CRIAR PAPEL para abrir a página Criar papel.
- Preencha os campos "Título", "Descrição", "ID" e "Iniciar cenário". Sugestão: use "Criar modelo de fluxo de trabalho do Dataproc" como o título do papel.
- Clique em "ADICIONAR PERMISSÕES".
- No formulário Adicionar permissões, clique em Filtrar e selecione "Permissão". Conclua o filtro para ler "Permissão: dataproc.workflowTemplates.instantiate".
- Clique na caixa de seleção à esquerda da permissão listada e em ADD.
- Na página "Criar papel", clique novamente em ADICIONAR PERMISSÕES para repetir as subetapas anteriores e adicionar a permissão "iam.serviceAccounts.actAs" ao papel personalizado. Agora a página Criar papel lista duas permissões.
- Clique em CRIAR na página Papel personalizado. O papel personalizado é listado na página Papéis.
Crie uma conta de serviço
No Console do Google Cloud, acesse a página Contas de serviço.
Selecione o projeto.
Clique em
Criar conta de serviço.No campo Nome da conta de serviço, insira o nome
workflow-scheduler
. O console do Google Cloud preenche o campo ID da conta de serviço com base nesse nome.Opcional: preencha o campo Descrição da conta de serviço.
Clique em Criar e continuar.
Clique no campo Selecionar um papel e escolha o papel personalizado Criar modelo de fluxo de trabalho do Dataproc que você criou na etapa anterior.
Clique em Continuar.
No campo Papel de administradores da conta de serviço, insira o endereço de e-mail da sua Conta do Google.
Clique em Concluído para terminar a criação da conta de serviço.
Criar um modelo de fluxo de trabalho
Copie e execute os comandos listados abaixo em uma janela de terminal local ou no Cloud Shell para criar e definir um modelo de fluxo de trabalho.
Observações:
- Os comandos especificam a região "us-central1". É possível especificar uma região diferente ou excluir a sinalização
--region
, se tiver executadogcloud config set compute/region
anteriormente para definir a propriedade da região. - A sequência "- " (espaço do traço) no comando
add-job
passa o argumento1000
para o job do SparkPi, que especifica o número de amostras a serem usadas para estimar o valor de pi.
- Crie o modelo de fluxo de trabalho.
gcloud dataproc workflow-templates create sparkpi \ --region=us-central1
- Adicione o job spark ao modelo de fluxo de trabalho do sparkpi. O ID da etapa "compute" é
obrigatório e identifica o job do SparkPi adicionado.
gcloud dataproc workflow-templates add-job spark \ --workflow-template=sparkpi \ --step-id=compute \ --class=org.apache.spark.examples.SparkPi \ --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \ --region=us-central1 \ -- 1000
- Use um cluster gerenciado de nó único para executar o fluxo de trabalho. O Dataproc criará o cluster, executará o fluxo de trabalho nele e excluirá o cluster quando o fluxo de trabalho for concluído.
gcloud dataproc workflow-templates set-managed-cluster sparkpi \ --cluster-name=sparkpi \ --single-node \ --region=us-central1
- Clique no nome do
sparkpi
na página Fluxos de trabalho do Dataproc no console do Google Cloud para abrir a página Detalhes do modelo de fluxo de trabalho. Confirme os atributos do modelo sparkpi.
Criar um job do Cloud Scheduler
Abra a página Cloud Scheduler no console do Google Cloud. Talvez seja necessário selecionar seu projeto para abrir a página. Clique em CRIAR JOB.
Insira ou selecione as seguintes informações do job:
- Selecione uma região: "us-central" ou outra região em que você criou seu modelo de fluxo de trabalho.
- Nome: "Sparkpi"
- Frequência: "* * * * *" seleciona a cada minuto. "0 9 * * 1" seleciona todas as segundas-feiras às 9h. Consulte Como definir a programação de jobs para outros valores de unix-cron. Observação: será possível clicar no botão EXECUTAR AGORA nos Jobs do Cloud Scheduler no console do Google Cloud para executar e testar o job, seja qual for a frequência definida.
- Fuso horário: selecione seu timezone. Digite "Estados Unidos" para listar os fusos horários dos EUA.
- Destino: "HTTP"
- URL: insira o URL a seguir depois de inserir
your-project-id. Substitua "us-central1" se você criou
o modelo de fluxo de trabalho em uma região diferente. Esse URL chamará
a API
workflowTemplates.instantiate
do Dataproc para executar o modelo de fluxo de trabalho do Sparkpi.https://dataproc.googleapis.com/v1/projects/your-project-id/regions/us-central1/workflowTemplates/sparkpi:instantiate?alt=json
- Método HTTP:
- "POST"
- Corpo: "{}"
- Cabeçalho do Auth:
- "Adicionar token OAuth"
- Conta de serviço: insira o service account address da
conta de serviço que você criou para este tutorial.
Você pode usar o seguinte endereço de conta depois de inserir your-project-id:
workflow-scheduler@your-project-id.iam.gserviceaccount
- Escopo: você pode ignorar este item.
- Clique em CRIAR
Testar o job do fluxo de trabalho programado
Na linha do job
sparkpi
na página do Cloud Scheduler Jobs, clique em EXECUTAR AGORA.Aguarde alguns minutos e abra a página Fluxos de trabalho do Dataproc para verificar se o fluxo de trabalho do Sparkpi foi concluído.
Depois que o fluxo de trabalho exclui o cluster gerenciado, os detalhes do job permanecem no console do Google Cloud. Clique no job
compute...
listado na página Jobs do Dataproc para visualizar os detalhes do job do fluxo de trabalho.
Limpar
O fluxo de trabalho neste tutorial exclui o cluster gerenciado quando o fluxo de trabalho é concluído. Manter o fluxo de trabalho permite executá-lo novamente e não gera cobranças. Você pode excluir outros recursos criados neste tutorial para evitar custos recorrentes.
Como excluir um projeto
- No Console do Google Cloud, acesse a página Gerenciar recursos.
- Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
- Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.
Como excluir o modelo de fluxo de trabalho
gcloud dataproc workflow-templates delete sparkpi \ --region=us-central1
Como excluir o job do Cloud Schedule
Abra a página Jobs do Cloud Scheduler no console do Google Cloud, marque a caixa à esquerda da função sparkpi
e clique em EXCLUIR.
Como excluir sua conta de serviço
Abra a página IAM e administrador → Contas de serviço
no console do Google Cloud, marque a caixa à esquerda da conta de serviço workflow-scheduler...
e clique em EXCLUIR.
A seguir
- Consulte Visão geral dos modelos de fluxo de trabalho do Dataproc
- Consulte Soluções de programação de fluxo de trabalho