Crie uma instância do Dataproc com o Spark ativado

O

Esta página descreve como criar uma instância do Vertex AI Workbench com o Dataproc Spark ativado. Esta página também descreve as vantagens da extensão Dataproc JupyterLab e oferece uma vista geral sobre como usar a extensão com o Serverless para Apache Spark e o Dataproc no Compute Engine.

Vista geral da extensão Dataproc JupyterLab

As instâncias do Vertex AI Workbench têm a extensão Dataproc JupyterLab pré-instalada a partir da versão M113 e posteriores.

A extensão Dataproc JupyterLab oferece duas formas de executar tarefas de blocos de notas do Apache Spark: clusters do Dataproc eGoogle Cloud sem servidor para o Apache Spark.

  • Os clusters do Dataproc incluem um conjunto de funcionalidades com controlo sobre a infraestrutura em que o Spark é executado. Escolhe o tamanho e a configuração do cluster do Spark, o que permite a personalização e o controlo do seu ambiente. Esta abordagem é ideal para cargas de trabalho complexas, tarefas de longa duração e gestão de recursos detalhada.
  • O Serverless para Apache Spark elimina as preocupações com a infraestrutura. Envia os seus trabalhos do Spark e a Google processa o aprovisionamento, o dimensionamento e a otimização dos recursos nos bastidores. Esta abordagem sem servidor oferece uma opção económica para cargas de trabalho de ciência de dados e AA.

Com ambas as opções, pode usar o Spark para o processamento e a análise de dados. A escolha entre clusters do Dataproc e o Serverless para Apache Spark depende dos requisitos específicos da carga de trabalho, do nível de controlo necessário e dos padrões de utilização de recursos.

As vantagens da utilização do Serverless para o Apache Spark para cargas de trabalho de ciência de dados e de ML incluem:

  • Sem gestão de clusters: não tem de se preocupar com o aprovisionamento, a configuração nem a gestão de clusters do Spark. Isto permite-lhe poupar tempo e recursos.
  • Escala automática: o serviço sem servidor para Apache Spark aumenta e diminui automaticamente a escala com base na carga de trabalho, pelo que só paga pelos recursos que usa.
  • Alto desempenho: o Serverless para Apache Spark está otimizado para o desempenho e tira partido da infraestrutura do Google Cloud.
  • Integração com outras Google Cloud tecnologias: O Serverless para Apache Spark integra-se com outros Google Cloud produtos, como o BigQuery e o Dataplex Universal Catalog.

Para mais informações, consulte a Google Cloud documentação do Serverless para Apache Spark.

Antes de começar

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Enable the Cloud Resource Manager, Dataproc, and Notebooks APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Enable the Cloud Resource Manager, Dataproc, and Notebooks APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  6. Funções necessárias

    Para garantir que a conta de serviço tem as autorizações necessárias para executar um ficheiro de bloco de notas num cluster sem servidor para Apache Spark ou num cluster do Dataproc, peça ao seu administrador para conceder à conta de serviço as seguintes funções do IAM:

    Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

    Estas funções predefinidas contêm as autorizações necessárias para executar um ficheiro de bloco de notas num cluster Serverless para Apache Spark ou num cluster Dataproc. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:

    Autorizações necessárias

    São necessárias as seguintes autorizações para executar um ficheiro de bloco de notas num cluster do Serverless para Apache Spark ou num cluster do Dataproc:

    • dataproc.agents.create
    • dataproc.agents.delete
    • dataproc.agents.get
    • dataproc.agents.update
    • dataproc.tasks.lease
    • dataproc.tasks.listInvalidatedLeases
    • dataproc.tasks.reportStatus
    • dataproc.clusters.use

    O administrador também pode atribuir à conta de serviço estas autorizações com funções personalizadas ou outras funções predefinidas.

    Crie uma instância com o Dataproc ativado

    Para criar uma instância do Vertex AI Workbench com o Dataproc ativado, faça o seguinte:

    1. Na Google Cloud consola, aceda à página Instâncias.

      Aceda a Instâncias

    2. Clique em  Criar novo.

    3. Na caixa de diálogo Nova instância, clique em Opções avançadas.

    4. Na caixa de diálogo Criar instância, na secção Detalhes, certifique-se de que a opção Ativar sessões interativas sem servidor do Dataproc está selecionada.

    5. Certifique-se de que o tipo de bancada de trabalho está definido como Instância.

    6. Na secção Ambiente, certifique-se de que usa a versão mais recente ou uma versão com o número M113 ou superior.

    7. Clique em Criar.

      O Vertex AI Workbench cria uma instância e inicia-a automaticamente. Quando a instância estiver pronta a usar, o Vertex AI Workbench ativa um link Abrir JupyterLab.

    Abra o JupyterLab

    Junto ao nome da instância, clique em Abrir JupyterLab.

    O separador Launcher do JupyterLab é aberto no navegador. Por predefinição, contém secções para Blocos de notas sem servidor para Apache Spark e Tarefas e sessões do Dataproc. Se existirem clusters preparados para o Jupyter no projeto e na região selecionados, é apresentada uma secção denominada Blocos de notas do cluster do Dataproc.

    Use a extensão com o Serverless para Apache Spark

    Os modelos de tempo de execução sem servidor para o Apache Spark que estão na mesma região e projeto que a sua instância do Vertex AI Workbench aparecem na secção Notebooks sem servidor para o Apache Spark do separador Launcher do JupyterLab.

    Para criar um modelo de tempo de execução, consulte o artigo Crie um modelo de tempo de execução do Serverless para Apache Spark.

    Para abrir um novo bloco de notas do Spark sem servidor, clique num modelo de tempo de execução. O kernel do Spark remoto demora cerca de um minuto a iniciar. Depois de o kernel ser iniciado, pode começar a programar.

    Use a extensão com o Dataproc no Compute Engine

    Se criou um cluster do Jupyter no Dataproc on Compute Engine, o separador Launcher tem uma secção Dataproc Cluster Notebooks.

    São apresentados quatro cartões para cada cluster do Dataproc preparado para o Jupyter ao qual tem acesso nessa região e projeto.

    Para alterar a região e o projeto, faça o seguinte:

    1. Selecione Definições > Definições do Cloud Dataproc.

    2. No separador Setup Config, em Project Info, altere o ID do projeto e a região e, de seguida, clique em Guardar.

      Estas alterações não entram em vigor até reiniciar o JupyterLab.

    3. Para reiniciar o JupyterLab, selecione Ficheiro > Desligar e, em seguida, clique em Abrir JupyterLab na página Instâncias do Vertex AI Workbench.

    Para criar um novo notebook, clique num cartão. Depois de o kernel remoto no cluster do Dataproc ser iniciado, pode começar a escrever o seu código e, em seguida, executá-lo no cluster.

    Faça a gestão do Dataproc numa instância através da CLI gcloud e da API

    Esta secção descreve formas de gerir o Dataproc numa instância do Vertex AI Workbench.

    Altere a região do cluster do Dataproc

    Os kernels predefinidos da instância do Vertex AI Workbench, como o Python e o TensorFlow, são kernels locais que são executados na VM da instância. Numa instância do Vertex AI Workbench com o Spark ativado do Dataproc, o seu bloco de notas é executado num cluster do Dataproc através de um kernel remoto. O kernel remoto é executado num serviço fora da VM da sua instância, o que lhe permite aceder a qualquer cluster do Dataproc no mesmo projeto.

    Por predefinição, o Vertex AI Workbench usa clusters do Dataproc na mesma região que a sua instância, mas pode alterar a região do Dataproc, desde que o Component Gateway e o componente Jupyter opcional estejam ativados no cluster do Dataproc.

    Teste o acesso

    A extensão do Dataproc JupyterLab está ativada por predefinição para instâncias do Vertex AI Workbench. Para testar o acesso ao Dataproc, pode verificar o acesso aos kernels remotos da sua instância enviando o seguinte pedido curl para o domínio kernels.googleusercontent.com:

    curl --verbose -H "Authorization: Bearer $(gcloud auth print-access-token)" https://PROJECT_ID-dot-REGION.kernels.googleusercontent.com/api/kernelspecs | jq .

    Se o comando curl falhar, verifique se:

    1. As entradas de DNS estão configuradas corretamente.

    2. Existe um cluster disponível no mesmo projeto (ou tem de criar um se não existir).

    3. O seu cluster tem o Component Gateway e o componente Jupyter opcional ativados.

    Desative o Dataproc

    As instâncias do Vertex AI Workbench são criadas com o Dataproc ativado por predefinição. Pode criar uma instância do Vertex AI Workbench com o Dataproc desativado definindo a chave disable-mixer metadata como true.

    gcloud workbench instances create INSTANCE_NAME --metadata=disable-mixer=true

    Ative o Dataproc

    Pode ativar o Dataproc numa instância do Vertex AI Workbench parada atualizando o valor dos metadados.

    gcloud workbench instances update INSTANCE_NAME --metadata=disable-mixer=false

    Faça a gestão do Dataproc com o Terraform

    O Dataproc para instâncias do Vertex AI Workbench no Terraform é gerido através da chave disable-mixer no campo de metadados. Ative o Dataproc definindo a chave disable-mixer metadata como false. Desative o Dataproc definindo a chave de metadados disable-mixer como true.

    Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform.

    resource "google_workbench_instance" "default" {
      name     = "workbench-instance-example"
      location = "us-central1-a"
    
      gce_setup {
        machine_type = "n1-standard-1"
        vm_image {
          project = "cloud-notebooks-managed"
          family  = "workbench-instances"
        }
        metadata = {
          disable-mixer = "false"
        }
      }
    }

    Resolver problemas

    Para diagnosticar e resolver problemas relacionados com a criação de uma instância com o Spark do Dataproc, consulte a Resolução de problemas do Vertex AI Workbench.

    O que se segue?