Crie uma instância do Dataproc com o Spark ativado
OEsta 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
- 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.
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
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 theserviceusage.services.enablepermission. Learn how to grant roles. -
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
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 theserviceusage.services.enablepermission. Learn how to grant roles. -
Trabalhador do Dataproc (
roles/dataproc.worker) no seu projeto -
Editor do Dataproc (
roles/dataproc.editor) no cluster para a autorizaçãodataproc.clusters.use -
dataproc.agents.create -
dataproc.agents.delete -
dataproc.agents.get -
dataproc.agents.update -
dataproc.tasks.lease -
dataproc.tasks.listInvalidatedLeases -
dataproc.tasks.reportStatus -
dataproc.clusters.use Na Google Cloud consola, aceda à página Instâncias.
Clique em Criar novo.
Na caixa de diálogo Nova instância, clique em Opções avançadas.
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.
Certifique-se de que o tipo de bancada de trabalho está definido como Instância.
Na secção Ambiente, certifique-se de que usa a versão mais recente ou uma versão com o número
M113ou superior.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.
Selecione Definições > Definições do Cloud Dataproc.
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.
Para reiniciar o JupyterLab, selecione Ficheiro > Desligar e, em seguida, clique em Abrir JupyterLab na página Instâncias do Vertex AI Workbench.
As entradas de DNS estão configuradas corretamente.
Existe um cluster disponível no mesmo projeto (ou tem de criar um se não existir).
O seu cluster tem o Component Gateway e o componente Jupyter opcional ativados.
Para mais informações sobre a extensão JupyterLab do Dataproc, consulte o artigo Use a extensão JupyterLab para desenvolver cargas de trabalho Spark sem servidor.
Para saber mais sobre o Serverless para Apache Spark, consulte a documentação do Serverless para Apache Spark
Para saber mais sobre a utilização do Spark com Google Cloud produtos e serviços Google Cloud, consulte o artigo O Spark no.
Procure os modelos do Dataproc no GitHub.
Saiba mais sobre o Serverless Spark através do
serverless-spark-workshopno GitHub.Leia a documentação do Apache Spark.
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:
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:
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:
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:
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.
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.