Aprender a usar o Dataproc sem servidor para sessões do Spark Interactive para escrever e executar código em notebooks do Jupyter.
Limitações da versão de pré-lançamento
- Os jobs do Spark são executados com a identidade da conta de serviço, não com a identidade do usuário que fez o envio.
- As métricas de faturamento não são registradas no Stackdriver. O Dataproc para Spark Serverless Interactive não tem custo financeiro durante o pré-lançamento.
- As GPUs ainda não são compatíveis.
- As sessões são encerradas após 24 horas, independentemente da configuração da propriedade
max session time
no modelo de ambiente de execução. Essa limitação vai ser removida da versão de disponibilidade geral.
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.
-
Enable the Dataproc API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Dataproc API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Criar uma sessão interativa sem servidor do Dataproc para Spark
Abra os notebooks do Jupyter em sessões sem servidor do Dataproc para sessões do Spark Interactive. Durante a versão da Visualização interativa sem servidor do Dataproc, é possível criar uma sessão de duas maneiras:
Use o plug-in Dataproc JupyterLab para criar modelos que os usuários possam usar para iniciar sessões com base nas configurações do modelo.
Usar o Vertex AI Workbench para criar uma sessão gerenciada pelo Google.
Plug-in JupyterLab
Nas seções a seguir, mostramos como criar uma sessão do Dataproc sem servidor para o Spark Interactive usando o plug-in do Dataproc JupyterLab.
Configurar sua máquina
É possível configurar e executar este guia de início rápido em uma máquina que tenha acesso aos serviços do Google, como sua máquina local ou uma instância de VM do Compute Engine.
Verifique se o
Python 3.8+
está instalado na sua máquina. É possível fazer o download e instalar o Python empython.or/downloads
(em inglês).Verifique a instalação do Python 3.8+.
python3 --version
Instale [
JupyterLab 3.6.3+
] e na sua máquina.pip3 install --upgrade jupyterlab
Verifique a instalação do JupyterLab 3.6.3 ou mais recente.
pip3 show jupyterlab
Instalar o plug-in do Dataproc JupyterLab.
pip3 install dataproc-jupyter-plugin
Se sua versão do JupyterLab for anterior a
4.0.0
, ative a extensão de plug-in.jupyter server extension enable dataproc_jupyter_plugin
-
jupyter lab
A página da tela de início do Jupyter é aberta no navegador. Ela contém uma seção Jobs e sessões do Dataproc. Ele também pode conter as seções Notebooks sem servidor do Dataproc e Notebooks de cluster do Dataproc se você tiver acesso aos notebooks sem servidor ou clusters do Dataproc com o componente opcional Jupyter em execução no seu projeto.
Por padrão, a sessão do Dataproc sem servidor para Spark Interactive é executada no projeto e na região que você definiu quando executou
gcloud init
em Antes de começar. É possível alterar as configurações de projeto e região para suas sessões na página Configurações > Configurações do Dataproc do JupyterLab.
Criar um modelo de ambiente de execução sem servidor do Dataproc
Os modelos de ambiente de execução sem servidor do Dataproc (também chamados de modelos session
)
contêm configurações para executar o código Spark em uma sessão. É possível
criar e gerenciar modelos de ambiente de execução usando o Jupyterlab ou a CLI gcloud.
JupyterLab
Clique no card
New runtime template
na seção Notebooks de cluster do Dataproc na página do JupyterLab Launcher.Preencha o formulário Modelo de ambiente de execução.
Especifique um Nome de exibição e uma Descrição e insira ou confirme as outras configurações.
Observações:
Configuração de rede: a sub-rede precisa ter o Acesso privado do Google ativado e permitir a comunicação de sub-redes em todas as portas. Consulte Dataproc sem servidor para configuração de rede Spark. Se a sub-rede da rede
default
para a região configurada ao executargcloud init
em Antes de começar não estiver ativada para o Acesso privado do Google, ative o Acesso privado do Google ou selecione outra rede com uma sub-rede regional que tenha o Acesso privado do Google ativado. É possível alterar a região que o Dataproc sem servidor usa na página Configurações > Configurações do Dataproc do JupyterLab.Metastore: use os campos nesta seção para escolher um serviço Metastore do Dataproc disponível para usar com sua sessão.
Tempo máximo de inatividade: tempo máximo de inatividade do notebook antes que a sessão seja encerrada automaticamente. Intervalo permitido: 10 minutos a 336 horas (14 dias).
Tempo máximo da sessão:ciclo de vida máximo de uma sessão antes que ela seja encerrada automaticamente. Intervalo permitido: 10 minutos a 336 horas (14 dias).
PHS: é possível selecionar um servidor de histórico permanente do Spark disponível para acessar os registros da sessão durante e após a sessão.
Propriedades do Spark: clique em Adicionar propriedade para cada propriedade que será definida para suas sessões do Spark sem servidor. Consulte Configuração de rede do Dataproc sem servidor para Spark para uma explicação das propriedades do Spark com ou sem suporte.
Rótulos:clique em Adicionar rótulo para cada rótulo que você quer definir nas sessões do Spark sem servidor.
A página Configurações do Dataproc lista os modelos de ambiente de execução. É possível excluir um modelo da lista no menu Action para cada um deles.
Clique em Save.
Abra e atualize a página de acesso rápido para ver o card de modelo de notebook salvo na tela de início do JupyterLab.
gcloud
Crie um arquivo YAML com a configuração do modelo de ambiente de execução.
Exemplo:
environmentConfig: executionConfig: networkUri: default jupyterSession: kernel: PYTHON displayName: Team A labels: purpose: testing description: Team A Development Environment
Se a sub-rede da rede
default
para a região configurada ao executargcloud init
em Antes de começar não estiver ativada para o Acesso privado do Google, ative o Acesso privado do Google ou selecione outra rede com uma sub-rede regional que tenha o Acesso privado do Google ativado. É possível alterar a região que o Dataproc sem servidor usa na página Configurações > Configurações do Dataproc do JupyterLab.Execute o comando gcloud beta Dataproc session-templates import a seguir localmente ou no Cloud Shell para criar um modelo de sessão (ambiente de execução) com base em um arquivo YAML.
gcloud beta dataproc session-templates import TEMPLATE_ID \ --source=YAML_FILE \ --project=PROJECT_ID \ --location=REGION
- Para descrever, listar, exportar e excluir modelos de sessão, acesse gcloud beta Dataproc session-templates.
Abrir um notebook
A seção Notebooks sem servidor do Dataproc na página do JupyterLab Launcher exibe cards de modelo de notebook que mapeiam os kernels do ambiente de execução especificados pelos modelos de ambiente de execução sem servidor.
Clique em um card do kernel do ambiente de execução para criar uma sessão e abrir um notebook. Quando a criação da sessão é concluída e o kernel está pronto para uso, o status dele muda de
Unknown
paraIdle
, e um notebook é aberto.Para ver o status da sessão, clique no card Sem servidor na seção Jobs e sessão do Dataproc da página de início do JupyterLab e clique na guia Sessões. O status da sessão mudará de
Creating
paraActive
quando ela estiver totalmente provisionada e pronta para executar o código.Escreva e teste o código no notebook.
Copie e cole o seguinte código
Pi estimation
do PySpark na célula do notebook do PySpark e pressione Shift+Return para executar o código.import random def inside(p): x, y = random.random(), random.random() return x*x + y*y < 1 count = sc.parallelize(range(0, 10000)) .filter(inside).count() print("Pi is roughly %f" % (4.0 * count / 10000))
Resultado do notebook:
Depois de criar e usar um notebook, é possível encerrar a sessão dele clicando em Encerrar kernel na guia Kernel.
- Se você não encerrar a sessão, o Dataproc encerrará a sessão quando o timer de inatividade da sessão expirar. Você pode configurar o tempo de inatividade da sessão na configuração do modelo de ambiente de execução. O tempo de inatividade padrão da sessão é de uma hora.
Vertex AI
Nesta seção, mostramos como usar o Vertex AI Workbench para criar uma sessão gerenciada e, em seguida, abrir e usar um notebook do PySpark na sessão.
- Acesse a página do Vertex AI Workbench no console do Google Cloud. Clique em Novo notebook para abrir um novo notebook gerenciado.
- Preencha os campos na página Criar um notebook gerenciado:
- Nome do notebook:insira um nome para o notebook.
- Região:selecione uma região na lista. Os notebooks gerenciados da Vertex AI estão disponíveis nas regiões listadas.
- Permissão:selecione
Single user only
. - E-mail do usuário:digite seu endereço de e-mail.
- Clique em Criar para criar o notebook e retornar à página do Vertex AI Workbench.
- Seu notebook está listado na página do Vertex AI Workbench. Clique em Abrir JupyterLab na linha do notebook depois que esse link for ativado.
- Na caixa de diálogo Autenticar seu notebook gerenciado exibida, clique em Autenticar para permitir que o Vertex AI Workbench acesse os dados e autentique o notebook gerenciado. Em seguida, selecione sua conta e permita o acesso para abrir o JupyterLab.
- Na guia Launcher do notebook, selecione Serverless Spark para criar uma sessão.
- Preencha a página Criar sessão do Spark sem servidor:
- Nome da sessão:insira um nome para sua sessão. Cada sessão é compatível com um notebook do Jupyter.
- Idioma:selecione PySpark.
- Configuração de execução: deixe o item da conta de serviço em branco para usar a conta de serviço padrão do Compute Engine.
- Configuração de rede:
- Clique em Redes neste projeto. A sub-rede VPC que executa uma sessão precisa atender aos requisitos listados em Configuração de rede do Dataproc sem servidor para Spark.
- Selecione uma rede e uma sub-rede no projeto na lista. A lista exibe sub-redes na rede selecionada que estão ativadas para o Acesso privado do Google.
- Clique em Enviar para iniciar a sessão. O Registro de atividades mostra o progresso da inicialização da sessão. Também é possível monitorar o status da sua sessão na página Sessões do Dataproc no console do Google Cloud.
- Quando a inicialização da sessão for concluída, uma guia do notebook Untitled.ipynb será aberta no JupyterLab. Copie e cole o seguinte código
Pi estimation
do PySpark na célula do notebook do PySpark e pressione Shift+Return para executar o código.import random def inside(p): x, y = random.random(), random.random() return x*x + y*y < 1 count = sc.parallelize(range(0, 10000)) .filter(inside).count() print("Pi is roughly %f" % (4.0 * count / 10000))
- Feche a guia do notebook Untitled.ipynb. Tentativas sem servidor do Dataproc para detectar e encerrar a sessão depois de fechar um notebook no JupyterLab.