Limitações e considerações do Dataproc sem servidor
- 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.
Antes de começar
- 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.
-
Ative a API Dataproc.
- 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.
-
Ative a API Dataproc.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Instalar o plug-in do Dataproc JupyterLab
É possível instalar e usar o plug-in do JupyterLab em uma máquina ou VM com acesso serviços do Google, como sua máquina local ou um Instância de VM do Compute Engine.
Para instalar o plug-in, siga estas etapas:
Verifique se o
Python 3.8+
está instalado na sua máquina. Você pode fazer o download e instalar o Python usandopython.org/downloads
Verifique a instalação do Python 3.8+.
python3 --version
Instale o
JupyterLab 3.6.3+
na sua máquina.pip3 install --upgrade jupyterlab
Verifique a instalação do JupyterLab 3.6.3+.
pip3 show jupyterlab
Instalar o plug-in do Dataproc JupyterLab.
pip3 install dataproc-jupyter-plugin
Ative o plug-in caso sua versão do JupyterLab seja anterior a
4.0.0
.jupyter server extension enable dataproc_jupyter_plugin
-
jupyter lab
A página Iniciador do JupyterLab será aberta no navegador. Ela contém uma seção Jobs e sessões do Dataproc. Ele também pode conter Seções Notebooks sem servidor do Dataproc e Notebooks de cluster do Dataproc se você tiver acesso a notebooks sem servidor do Dataproc ou clusters do Dataproc com o componente opcional Jupyter em execução no projeto.
Por padrão, a sessão interativa do Dataproc Serverless para Spark é executada no projeto e na região que você definiu quando executou
gcloud init
Antes de começar. É possível alterar o projeto e as configurações de região das suas sessões da JupyterLab Configurações > página "Configurações do Dataproc".
Criar um modelo de ambiente de execução sem servidor do Dataproc
Modelos de ambiente de execução sem servidor do Dataproc (também chamados de modelos session
)
contêm definições de configuração para executar o código Spark em uma sessão. Você pode
criar e gerenciar modelos de ambiente de execução usando o Jupyterlab ou a CLI gcloud.
JupyterLab
Clique no card
New runtime template
em Notebooks sem servidor do Dataproc na página Launcher do JupyterLab.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 ativar o Acesso privado do Google. e precisa permitir a comunicação por sub-rede em todas as portas (consulte Dataproc sem servidor para configuração de rede do Spark).
Se a sub-rede da rede
default
para a região que você configurou quando você executougcloud init
em Antes de começar não está ativado para o Acesso privado do Google:- Ative o recurso para 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 usada pelo Dataproc sem servidor na página Configurações > página "Configurações do Dataproc".
Metastore: para usar um Serviço Dataproc Metastore nas suas sessões, selecione o ID do projeto, a região e o serviço do metastore.
Tempo máximo de inatividade:é o tempo máximo de inatividade do notebook antes que a sessão seja encerrado. Intervalo permitido: de 10 minutos a 336 horas (14 dias).
Tempo máximo da sessão: o ciclo de vida máximo de uma sessão antes que ela seja encerrado. Intervalo permitido: de 10 minutos a 336 horas (14 dias).
PHS: é possível selecionar um Servidor de histórico do Spark permanente para permitir o acesso aos registros durante e após as sessões.
Propriedades do Spark: clique em Adicionar propriedade para cada propriedade a ser definida para suas sessões do Spark sem servidor. Consulte Propriedades do Spark para uma lista de propriedades do Spark com e sem suporte, incluindo Propriedades de ambiente de execução, recursos e escalonamento automático do Spark.
Rótulos:clique em Adicionar rótulo para cada rótulo a ser definido. nas sessões do Spark sem servidor.
Confira seus modelos de ambiente de execução em Configurações > Configurações do Dataproc página.
- Você pode excluir um modelo do menu Ação do modelo.
Clique em Salvar.
Abra e atualize a página Launcher do JupyterLab para conferir o modelo de notebook salvo na página Iniciador do JupyterLab.
gcloud
Crie um arquivo YAML com a configuração do modelo de ambiente de execução.
YAML simples
environmentConfig: executionConfig: networkUri: default jupyterSession: kernel: PYTHON displayName: Team A labels: purpose: testing description: Team A Development Environment
YAML complexo
environmentConfig: executionConfig: serviceAccount: sa1 # Choose either networkUri or subnetworkUri networkUri: default subnetworkUri: subnet networkTags: - tag1 kmsKey: key1 idleTtl: 3600s ttl: 14400s stagingBucket: staging-bucket peripheralsConfig: metastoreService: projects/my-project-id/locations/us-central1/services/my-metastore-id sparkHistoryServerConfig: dataprocCluster: projects/my-project-id/regions/us-central1/clusters/my-cluster-id jupyterSession: kernel: PYTHON displayName: Team A labels: purpose: testing runtimeConfig: version: "1.1" containerImage: gcr.io/my-project-id/my-image:1.0.1 properties: "p1": "v1" description: Team A Development Environment
Se a sub-rede da rede
default
para a região que você configurou quando você executougcloud init
em Antes de começar não está ativado para o Acesso privado do Google:- Ative o recurso para 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 usada pelo Dataproc sem servidor na página Configurações > página "Configurações do Dataproc".
Crie um modelo de sessão (ambiente de execução) do seu arquivo YAML executando o seguinte: gcloud beta dataproc session-templates import local ou no Cloud Shell:
gcloud beta dataproc session-templates import TEMPLATE_ID \ --source=YAML_FILE \ --project=PROJECT_ID \ --location=REGION
- Consulte gcloud beta dataproc session-templates. para ver comandos para descrever, listar, exportar e excluir modelos de sessão.
Iniciar e gerenciar notebooks
Depois de instalar o plug-in do Dataproc JupyterLab, clique nos cards de modelo na página Launcher do JupyterLab para:
Iniciar um notebook do Jupyter no Dataproc sem servidor
Seção Notebooks sem servidor do Dataproc na página do JupyterLab Launcher, que mostra um modelo de notebook Cards que mapeiam para modelos de ambiente de execução do Dataproc sem servidor (consulte Criar um modelo de ambiente de execução do Dataproc sem servidor).
Clique em um card para criar uma sessão do Dataproc sem servidor e iniciar um notebook. Quando a criação da sessão for concluída e o notebook pronto para uso, o status do kernel muda de
Unknown
aIdle
.Escreva e teste o código do notebook.
Copie e cole o seguinte código
Pi estimation
do PySpark na célula do notebook PySpark e, em seguida, 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 Clique em Encerrar o kernel na guia Kernel.
- Se você não encerrar a sessão, o Dataproc a encerrará quando o timer de inatividade da sessão expirar. É possível configurar a sessão tempo de inatividade na configuração do modelo de ambiente de execução. O tempo de inatividade padrão da sessão é de uma hora.
Iniciar um notebook em um cluster do Dataproc no Compute Engine
Se você criou um cluster do Jupyter do Dataproc no Compute Engine, a página Launcher do JupyterLab contém um Seção Notebook de cluster do Dataproc com cards de kernel pré-instalados.
Para iniciar um notebook do Jupyter no Dataproc Cluster do Compute Engine:
Clique em um card na seção Notebook de cluster do Dataproc.
Quando o status do kernel muda de
Unknown
paraIdle
, é possível começar a escrever e executar o código do notebook.Depois de criar e usar um notebook, é possível encerrar a sessão dele Clique em Encerrar o kernel na guia Kernel.
Gerenciar arquivos de entrada e saída no Cloud Storage
Analisar dados exploratórios e criar modelos de ML geralmente envolve e saídas baseadas em arquivo. O Dataproc sem servidor acessa esses arquivos no Cloud Storage.
Para acessar o navegador do Cloud Storage, clique nele. na barra lateral da página Iniciador do JupyterLab e clique duas vezes pasta para ver o conteúdo dela.
Clique nos tipos de arquivo compatíveis com o Jupyter para abri-los e editá-los. Quando você salvar alterações nos arquivos, elas são gravadas no Cloud Storage.
Para criar uma nova pasta do Cloud Storage, clique no ícone correspondente e digite o nome da pasta.
Para fazer upload de arquivos em um bucket ou pasta do Cloud Storage, clique em no ícone de upload e selecione os arquivos para upload.
Desenvolver o código do notebook Spark
Depois de instalar o plug-in do Dataproc JupyterLab, é possível abrir os notebooks Jupyter na página Launcher do JupyterLab para desenvolver no código do aplicativo.
Desenvolvimento de código em PySpark e Python
Dataproc sem servidor e Dataproc no Compute Engine dão suporte a kernels do PySpark. Dataproc no Compute Engine também oferece suporte a kernels do Python.
Clique em um cartão do PySpark Notebooks sem servidor do Dataproc ou Notebook de cluster do Dataproc na página Launcher do JupyterLab para abrir um notebook PySpark.
Clique em um card do kernel do Python Seção Notebook do cluster do Dataproc na página Launcher do JupyterLab para abrir um notebook Python.
Desenvolvimento de código SQL
Clique no card do kernel do PySpark na Notebooks sem servidor do Dataproc ou Notebook de cluster do Dataproc seção da página Launcher do JupyterLab para abrir um notebook PySpark para escrever e executar código SQL.
Mágica do Spark SQL:já que o kernel do PySpark que é iniciado
Notebooks sem servidor do Dataproc
é pré-carregado com a mágica do Spark SQL, em vez de usar spark.sql('SQL STATEMENT').show()
para encapsular sua instrução SQL, digite
%%sparksql magic
na parte superior de uma célula e, em seguida, digite sua instrução SQL na célula.
BigQuery SQL: o conector BigQuery Spark permite que o código do seu notebook carregue dados das tabelas do BigQuery, fazer análises no Spark e gravar os resultados em uma tabela do BigQuery.
O ambiente de execução do Dataproc sem servidor 2.1 inclui o Conector do Spark do BigQuery Se você usa o Dataproc sem servidor 2.0 ou um ambiente de execução anterior para iniciar notebooks do Dataproc sem servidor, instale o conector do BigQuery do Spark adicionando a seguinte propriedade do Spark ao modelo de ambiente de execução sem servidor do Dataproc:
spark.jars: gs://spark-lib/bigquery/spark-bigquery-with-dependencies_2.12-0.25.2.jar
Desenvolvimento de código em Scala
Clusters do Dataproc no Compute Engine criados com imagem versão 2.0+, 2.1+ e posterior, incluem Apache Toree, um kernel em Scala para a plataforma de notebooks Jupyter que fornece acesso interativo para o Spark.
Clique no card do Apache Toree Notebook de cluster do Dataproc na página Launcher do JupyterLab para abrir um notebook para o Scala desenvolvimento de código.
Explorador de metadados
Se uma instância do Metastore do Dataproc (DPMS) está anexado a um modelo de ambiente de execução sem servidor do Dataproc; ou um cluster do Dataproc no Compute Engine, o esquema de instância do DPMS é exibido no JupyterLab Metadata Explorer quando um notebook é aberto. O DPMS é um totalmente gerenciado e escalonável horizontalmente Google Cloud.
Para visualizar os metadados HMS no Metadata Explorer:
Ative a API Data Catalog no seu projeto.
Ativar a sincronização do Data Catalog no serviço DPMS.
Especifique uma instância DPMS ao Criar o modelo de ambiente de execução do Dataproc sem servidor ou crie o cluster do Dataproc no Compute Engine.
Para abrir o JupyterLab Metadata Explorer, clique no ícone dele na barra lateral.
Você pode pesquisar um banco de dados, uma tabela ou uma coluna no Metadata Explorer. Clique em um banco de dados, tabela ou nome de coluna para exibir os metadados associados.
Implantar seu código
Depois de instalar o plug-in do Dataproc JupyterLab, é possível usar o JupyterLab para:
Execute o código do seu notebook na infraestrutura sem servidor do Dataproc
Envie jobs em lote para a infraestrutura do Dataproc sem servidor ou Dataproc no cluster do Compute Engine.
Executar o código do notebook no Dataproc sem servidor
Clique no ícone Executar ou pressione as teclas Shift + Enter para executar o código em uma célula do notebook.
Use o menu Executar para executar o código em uma ou mais células do notebook.
Enviar um job em lote para o Dataproc sem servidor
Clique no card Sem servidor na seção Jobs e sessões do Dataproc na página Launcher do JupyterLab.
Clique na guia Batch, depois clique em Create Batch e preencha Campos Batch Info.
Clique em Enviar para enviar o job.
Enviar um job em lote para um cluster do Dataproc no Compute Engine
Clique no card Clusters na seção Jobs e sessões do Dataproc na página Launcher do JupyterLab.
Clique na guia Jobs e depois em Enviar job.
Selecione um Cluster e preencha os campos de Job.
Clique em Enviar para enviar o job.
Ver e gerenciar recursos
Depois de instalar o plug-in do Dataproc JupyterLab, você pode ver e gerenciar o Dataproc sem servidor e o Dataproc no Compute Engine na seção Jobs e sessões do Dataproc na página Iniciador do JupyterLab.
Clique na seção Jobs e sessões do Dataproc para mostrar os Clusters e Cartões sem servidor.
Para visualizar e gerenciar sessões do Dataproc sem servidor:
- Clique no cartão Sem servidor.
- Clique na guia Sessions e em um ID de sessão para abrir os Detalhes da sessão. para conferir as propriedades da sessão, os registros do Google Cloud na Análise de registros e encerrar uma sessão. Observação: uma sessão exclusiva do Dataproc sem servidor é criada para iniciar cada Notebook sem servidor do Dataproc.
Para visualizar e gerenciar lotes do Dataproc sem servidor:
- Clique na guia Lotes para acessar a lista de lotes do Dataproc sem servidor na no projeto e na região atuais. Clique no ID de um lote para visualizar os detalhes dele.
Para visualizar e gerenciar clusters do Dataproc no Compute Engine:
- Clique no card Clusters. A guia Clusters está selecionada para listar ativos do Dataproc nos clusters do Compute Engine no projeto e na região atuais. Você pode clicar nos ícones na coluna Ações. para iniciar, interromper ou reiniciar um cluster. Clique no nome de um cluster para conferir os detalhes do cluster. Você pode clicar nos ícones na coluna Ações. para clonar, interromper ou excluir um job.
Para visualizar e gerenciar jobs do Dataproc no Compute Engine:
- Clique no card Jobs para ver a lista de jobs na do projeto atual. Clique em um ID de job para ver os detalhes do job.