Fluxo de trabalho usando o Cloud Scheduler

Antes de começar

Criar o projeto

  1. Faça login na sua conta do Google.

    Se você ainda não tiver uma, inscreva-se.

  2. No Console do Cloud, na página do seletor de projetos, selecione ou crie um projeto do Cloud.

    Acessar a página do seletor de projetos

  3. Verifique se a cobrança está ativada para o seu projeto do Google Cloud. Saiba como confirmar se a cobrança está ativada para o seu projeto.

  4. Ative as APIs Dataproc, Compute Engine, and Cloud Scheduler .

    Ative as APIs

  5. Instale e inicialize o SDK do Cloud..

Criar um papel personalizado

  1. Abra a página Abrir IAM e administrador → Papéis no Console do Cloud.
    1. Clique em CRIAR PAPEL.
    2. 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.
    3. Clique em ADICIONAR PERMISSÕES,
    4. No formulário Adicionar permissões, na caixa de teste da tabela "Filtrar", selecione: "Permissão" e preencha o filtro para ler "Permissão: dataproc.workflowTemplates.instantiate".
    5. Clique na caixa de seleção à esquerda da permissão listada e clique em ADICIONAR.
    6. Clique em CRIAR na página Papel personalizado. O papel personalizado é listado na página Papéis.

Crie uma conta de serviço

  1. Abra a página IAM e administrador → Contas de serviço no Console do Cloud.

  2. Clique em CRIAR CONTA DE SERVIÇO e preencha os seguintes itens:

      1. Nome da conta de serviço: "workflow-Scheduler"
      2. ID da conta de serviço (este campo precisa ser preenchido automaticamente): "workflow-scheduler@your-project-id.iam.gserviceaccount"
      3. Descrição da conta de serviço: Optional description
        1. Clique em CRIAR
        2. Papel: selecione seu papel personalizado com a permissão dataproc.workflowTemplates.instantiate.
        3. Conceda aos usuários acesso a essa conta de serviço:
          1. Papel de usuários de conta de serviço: ignore este item.
          2. Papel de administradores da conta de serviço: Insert your Google account email address
        4. Criar chave: você pode ignorar este item.
        5. Clique em CONCLUÍDO.

    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.

    Notas:

    • Os comandos especificam a região "us-central1". É possível especificar uma região diferente ou excluir a sinalização --region, se tiver executado gcloud 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 argumento 1000 para o job do SparkPi, que especifica o número de amostras a serem usadas para estimar o valor de pi.

    1. Crie o modelo de fluxo de trabalho.

      gcloud dataproc workflow-templates create sparkpi \
          --region=us-central1
      
    2. 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
      

    3. 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
      

    4. Clique no nome do sparkpi na página Fluxos de trabalho do Dataproc no Console do 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

    1. Abra a página do Cloud Scheduler no Console do Cloud e clique em CRIAR JOB.

    2. Insira ou selecione as seguintes informações do job:

      1. Selecione uma região: "us-central" ou outra região em que você criou seu modelo de fluxo de trabalho.
      2. Nome: "Sparkpi"
      3. 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: você poderá clicar em um botão EXECUTAR AGORA nos Jobs do Cloud Scheduler no Console do Cloud para executar e testar o job, independentemente da frequência definida para ele.
      4. Fuso horário: selecione seu timezone. Digite "Estados Unidos" para listar os fusos horários dos EUA.
      5. Destino: "HTTP"
      6. 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
        
      7. Método HTTP:
        1. "POST"
        2. Corpo: "{}"
      8. Cabeçalho do Auth:
        1. "Adicionar token OAuth"
        2. 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
          
        3. Escopo: você pode ignorar este item.
      9. Clique em CRIAR

    Testar o job do fluxo de trabalho programado

    1. Na linha do job sparkpi na página do Cloud Scheduler Jobs, clique em EXECUTAR AGORA.

    2. Aguarde alguns minutos e abra a página Fluxos de trabalho do Dataproc para verificar se o fluxo de trabalho sparkpi foi concluído.

    3. Depois que o fluxo de trabalho exclui o cluster gerenciado, os detalhes do job permanecem no Console do 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

    1. No Console do Cloud, acesse a página Gerenciar recursos:

      Acessar a página "Gerenciar recursos"

    2. Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
    3. 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 doCloud Scheduler no Console do 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 Cloud, selecione a caixa à esquerda da conta de serviço workflow-scheduler... e clique em EXCLUIR.

    A seguir