O Dataproc Hub é um servidor JupyterHub personalizado. Os administradores configuram e criam instâncias do Dataproc Hub que podem gerar clusters do Managed Service para Apache Spark de usuário único para hospedar ambientes de notebook Jupyter e JupyterLab (consulte Usar o Dataproc Hub).
Iniciar notebooks para vários usuários. É possível criar uma instância do Vertex AI Workbench com o Managed Service para Apache Spark ou instalar o plug-in do Managed Service para Apache Spark JupyterLab em uma VM para disponibilizar notebooks a vários usuários.
Objetivos
Defina uma configuração de cluster do Managed Service for Apache Spark ou use um dos arquivos de configuração predefinidos.
Definir variáveis de ambiente da instância do Dataproc Hub.
Crie uma instância do Dataproc Hub
Antes de começar
Se ainda não tiver feito isso, crie um projeto do Google Cloud e um bucket do Cloud Storage.
Configurar o projeto
- Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloud, 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.
-
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.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Dataproc, Compute Engine, and Cloud Storage 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.-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a gcloud CLI, execute o seguinte comando:
gcloud init -
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.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Dataproc, Compute Engine, and Cloud Storage 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.-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a gcloud CLI, execute o seguinte comando:
gcloud init
Como criar um bucket do Cloud Storage em seu projeto para armazenar os dados usados neste tutorial.
- No console do Google Cloud , acesse a página Buckets do Cloud Storage.
- Clique em Criar.
- Na página Criar um bucket, insira as informações do seu bucket. Para ir à próxima
etapa, clique em Continuar.
-
Na seção Começar, faça o seguinte:
- Insira um nome globalmente exclusivo que atenda aos requisitos de nomeação de bucket.
- Para adicionar um
rótulo de bucket,
abra a seção Rótulos (),
clique em add_box
Adicionar rótulo e especifique um
keye umvaluepara o rótulo.
-
Na seção Escolha onde armazenar seus dados, faça o seguinte:
- Selecione um tipo de local.
- Escolha um local onde os dados do bucket são armazenados permanentemente no menu suspenso Tipo de local.
- Se você selecionar o tipo de local birregional, também poderá ativar a replicação turbo usando a caixa de seleção relevante.
- Para configurar a replicação entre buckets, selecione
Adicionar replicação entre buckets usando o Serviço de transferência do Cloud Storage e
siga estas etapas:
Configurar a replicação entre buckets
- No menu Bucket, selecione um bucket.
Na seção Configurações de replicação, clique em Configurar para definir as configurações do job de replicação.
O painel Configurar a replicação entre buckets aparece.
- Para filtrar objetos a serem replicados por prefixo de nome de objeto, insira um prefixo com que você quer incluir ou excluir objetos e clique em Adicionar um prefixo.
- Para definir uma classe de armazenamento para os objetos replicados, selecione uma classe de armazenamento no menu Classe de armazenamento. Se você pular esta etapa, os objetos replicados vão usar a classe de armazenamento do bucket de destino por padrão.
- Clique em Concluído.
-
Na seção Escolha como armazenar seus dados, faça o seguinte:
- Selecione uma classe de armazenamento padrão para o bucket ou Classe automática para gerenciamento automático da classe de armazenamento dos dados do bucket.
- Para ativar o namespace hierárquico, na seção Otimizar o armazenamento para cargas de trabalho com uso intensivo de dados, selecione Ativar namespace hierárquico neste bucket.
- Na seção Escolha como controlar o acesso a objetos, selecione se o bucket aplica ou não a prevenção de acesso público e selecione um método de controle de acesso para os objetos do bucket.
-
Na seção Escolha como proteger os dados do objeto, faça o
seguinte:
- Selecione qualquer uma das opções em Proteção de dados que
você quer definir para o bucket.
- Para ativar a exclusão reversível, clique na caixa de seleção Política de exclusão reversível (para recuperação de dados) e especifique o número de dias que você quer reter os objetos após a exclusão.
- Para definir o controle de versões de objetos, clique na caixa de seleção Controle de versões de objetos (para controle de versões) e especifique o número máximo de versões por objeto e o número de dias após os quais as versões não atuais expiram.
- Para ativar a política de retenção em objetos e buckets, clique na caixa de seleção Retenção (para compliance) e faça o seguinte:
- Para ativar o bloqueio de retenção de objetos, clique na caixa de seleção Ativar retenção de objetos.
- Para ativar o Bloqueio de buckets, clique na caixa de seleção Definir política de retenção de buckets e escolha uma unidade e um período de armazenamento para a retenção.
- Para escolher como os dados do objeto serão criptografados, expanda a seção Criptografia de dados () e selecione um método de Criptografia de dados.
- Selecione qualquer uma das opções em Proteção de dados que
você quer definir para o bucket.
-
Na seção Começar, faça o seguinte:
- Clique em Criar.
Defina uma configuração de cluster
Uma instância do Dataproc Hub cria um cluster a partir de valores de configuração contidos em um arquivo de configuração de cluster YAML.
A configuração do cluster pode especificar qualquer recurso ou componente disponível para clusters do Managed Service for Apache Spark (como tipo de máquina, ações de inicialização e componentes opcionais). A versão da imagem do cluster precisa ser 1.4.13 ou superior. A tentativa de gerar um cluster com uma versão de imagem anterior à 1.4.13 causará um erro e falhará.
Amostra do arquivo de configuração do cluster YAML
clusterName: cluster-name
config:
softwareConfig:
imageVersion: 2.2-ubuntu22
optionalComponents:
- JUPYTER
Cada configuração precisa ser salva no Cloud Storage. É possível criar e salvar vários arquivos de configuração para oferecer aos usuários uma opção quando eles usarem o Dataproc Hub para criar o ambiente de notebook do cluster do Managed Service para Apache Spark.
Há duas maneiras de criar um arquivo de configuração de cluster YAML:
Crie um arquivo de configuração de cluster YAML no console
- Abra a página Criar um cluster
no console do Google Cloud e selecione e preencha os campos para
especificar o tipo de cluster que será gerado pelo Dataproc Hub para os usuários.
- Na parte inferior do painel esquerdo, selecione "REST equivalente".
- Copie o bloco JSON gerado excluindo a linha de solicitação POST principal e cole o bloco JSON em um conversor online de JSON para YAML (pesquise "Converter JSON em YAML").
- Copie o YAML convertido em um arquivo cluster-config-filename .yaml local.
Exporte um arquivo de configuração de cluster YAML de um cluster existente
- Crie um cluster que corresponda aos seus requisitos.
- Exporte a configuração do cluster para um arquivo yaml cluster-config-filename local.
gcloud dataproc clusters export cluster-name \ --destination cluster-config-filename.yaml \ --region region
Salve o arquivo de configuração YAML no Cloud Storage
Copie o arquivo de configuração do cluster YAML local para o bucket do Cloud Storage.
gcloud storage cp cluster-config-filename.yaml gs://bucket-name/
Defina variáveis de ambiente da instância do Dataproc Hub
O administrador pode definir as variáveis de ambiente do hub listadas na tabela abaixo para definir os atributos dos clusters do Managed Service para Apache Spark que serão gerados pelos usuários do hub.
| Variável | Descrição | Exemplo |
|---|---|---|
| NOTEBOOKS_LOCATION | Bucket do Cloud Storage ou pasta do bucket que contém notebooks do usuário. O prefixo "gs://" é opcional. Padrão:o bucket de preparo do Managed Service for Apache Spark. | gs://bucket-name/ |
| DATAPROC_CONFIGS | Lista delimitada por vírgulas de strings dos caminhos do Cloud Storage para arquivos de configuração do cluster YAML. O prefixo
"gs://" é opcional. Padrão: gs://dataproc-spawner-dist/example-configs/. que contém example-cluster.yaml e example-single-node.yaml predefinidos.
|
gs://cluster-config-filename.yaml |
| DATAPROC_LOCATIONS_LIST | Sufixos de zona na região em que a instância do Dataproc Hub está localizada. Os usuários podem selecionar uma dessas zonas como a zona em que o cluster do Serviço gerenciado para Apache Spark será gerado. Padrão: "b". | b, c, d |
| DATAPROC_DEFAULT_SUBNET | Sub-rede em que a instância do Dataproc Hub vai gerar clusters do serviço gerenciado para Apache Spark. Padrão: a sub-rede da instância do Dataproc Hub. | https://www.googleapis.com/compute/v1/projects/project-id/regions/region/subnetworks/subnet-name |
| DATAPROC_SERVICE_ACCOUNT | Conta de serviço em que as VMs do Managed Service for Apache Spark serão executadas. Padrão:se não for definida, a conta de serviço padrão do serviço gerenciado para Apache Spark será usada. | service-account@project-id.iam.gserviceaccount.com |
| SPAWNER_DEFAULT_URL | Se a interface do Jupyter ou do JupyterLab será exibida em clusters gerados pelo Managed Service for Apache Spark por padrão. Padrão: "/lab". | "/" ou "/lab" para Jupyter ou JupyterLab, respectivamente. |
| DATAPROC_ALLOW_CUSTOM_CLUSTERS | Se os usuários podem personalizar os clusters do Managed Service for Apache Spark. Padrão: falso. | "verdadeiro" ou "falso" |
| DATAPROC_MACHINE_TYPES_LIST | Lista de tipos de máquinas que os usuários podem escolher para os clusters gerados pelo Serviço gerenciado para Apache Spark, se a personalização do cluster (DATAPROC_ALLOW_CUSTOM_CLUSTERS) estiver ativada. Padrão:vazio (todos os tipos de máquina são permitidos). | n1-standard-4,n1-standard-8,e2-standard-4,n1-highcpu-4 |
| NOTEBOOKS_EXAMPLES_LOCATION | Caminho do Cloud Storage para o bucket de notebooks ou a pasta do bucket a ser baixada para o cluster do Serviço Gerenciado para Apache Spark gerado quando o cluster for iniciado. Padrão:vazio. | gs://bucket-name/ |
Como definir variáveis de ambiente do hub
Há duas maneiras de definir variáveis de ambiente do hub:
Definir variáveis de ambiente do hub no console
Ao criar uma instância do Dataproc Hub na guia Notebooks gerenciados pelo usuário da página Dataproc→Workbench no console do Google Cloud , clique no botão Preencher para abrir um formulário Preencher o Dataproc Hub que permite definir cada variável de ambiente.
Definir variáveis de ambiente do hub em um arquivo de texto
Crie o arquivo. É possível usar um editor de texto para definir variáveis de ambiente da instância do Dataproc Hub em um arquivo local. Como alternativa, crie o arquivo executando o seguinte comando depois de preencher os valores do marcador e alterar ou adicionar variáveis e seus valores.
cat <<EOF > environment-variables-file DATAPROC_CONFIGS=gs://bucket/cluster-config-filename.yaml NOTEBOOKS_LOCATION=gs://bucket/notebooks DATAPROC_LOCATIONS_LIST=b,c EOF
Salve o arquivo no Cloud Storage. Copie o arquivo local de variáveis de ambiente da instância do Dataproc Hub para o bucket do Cloud Storage.
gcloud storage cp environment-variable-filename gs://bucket-name/folder-name/
Definir papéis de gerenciamento de identidade e acesso (IAM, na sigla em inglês)
O Dataproc Hub inclui as seguintes identidades com as seguintes capacidades:
- Administrador: cria uma instância do Dataproc Hub
- Usuário de dados e ML: acessa a IU do Dataproc Hub
- Conta de serviço do Dataproc Hub: representa o Dataproc Hub
- Conta de serviço do Managed Service for Apache Spark: representa o cluster do Managed Service for Apache Spark que o Dataproc Hub cria.
Cada identidade requer papéis ou permissões específicas para realizar as tarefas associadas. A tabela abaixo resume os papéis e permissões do IAM exigidos por cada identidade.
| Identidade | Tipo | Papel ou permissão |
|---|---|---|
| Administrador do Dataproc Hub | Usuário ou conta de serviço | roles/notebooks.admin |
| Usuário do Dataproc Hub | Usuário | notebooks.instances.use, dataproc.clusters.use |
| Dataproc Hub | Conta de serviço | roles/dataproc.hubAgent |
| Dataproc | Conta de serviço | roles/dataproc.worker |
Crie uma instância do Dataproc Hub
Antes de começar:para criar uma instância do Managed Service para Apache Spark Hub no console Google Cloud , sua conta de usuário precisa ter a permissão
compute.instances.create. Além disso, a conta de serviço da instância, ou seja, a conta de serviço padrão do Compute Engine ou a conta de serviço especificada pelo usuário, listada em IAM e administrador > Contas de serviço, também precisa ter permissão. Veja Conta de serviço da VM do Managed Service para Apache Sparkiam.serviceAccounts.actAs.Acesse a página Dataproc → Workbench no console Google Cloud e selecione a guia Notebooks gerenciados pelo usuário.
Se não estiver pré-selecionado como um filtro, clique na caixa Filtro e selecione **Ambiente:Hub do Dataproc"".
Clique em Novo notebook→Dataproc Hub.
Na página Criar um notebook gerenciado pelo usuário, forneça as seguintes informações:
- Nome do notebook: nome da instância do Dataproc Hub.
- Região: selecione uma região para a instância do Dataproc Hub. Os clusters do Managed Service para Apache Spark gerados por essa instância do Dataproc Hub também serão criados nessa região.
- Zona: selecione uma zona na região selecionada.
- Ambiente:
Environment: selecioneDataproc Hub.Select a script to run after creation(opcional): é possível inserir ou procurar e selecionar um script ou executável de ação de inicialização para ser executado no cluster do Managed Service para Apache Spark gerado.Populate Dataproc Hub (optional): clique em Populate para abrir um formulário que permite definir cada uma das variáveis de ambiente do hub (consulte Definir variáveis de ambiente da instância do Dataproc Hub para uma descrição de cada variável). O Managed Service for Apache Spark usa valores padrão para variáveis de ambiente não definidas. Como alternativa, é possível definir pares Metadadoskey:valuepara definir variáveis de ambiente (consulte o próximo item).Metadata:- Se você criou um arquivo de texto que
contém as configurações variável de ambiente do hub (consulte
Como definir variáveis de ambiente do hub),
forneça o nome do arquivo como
keye o local do arquivo no Cloud Storage comogs://bucket-name/folder-name/environment-variable-filename.valueO Managed Service for Apache Spark usa valores padrão para variáveis de ambiente não definidas.
- Se você criou um arquivo de texto que
contém as configurações variável de ambiente do hub (consulte
Como definir variáveis de ambiente do hub),
forneça o nome do arquivo como
- Configuração da máquina:
Machine Type: selecione o tipo de máquina do Compute Engine.- Defina outras opções de configuração de máquina.
- Outras opções:
- É possível expandir e definir ou substituir os valores padrão nas seções Discos, Rede, Permissão, Segurança e Upgrade do ambiente e integridade do sistema.
- Clique em Criar para iniciar a instância do Dataproc Hub.
O link Abrir JupyterLab da instância do Dataproc Hub fica ativo depois que a instância é criada. Os usuários clicam nesse link para abrir a página do servidor JupyterHub e configurar e criar um cluster do Managed Service para Apache Spark JupyterLab (consulte Usar o Dataproc Hub).
Limpar
Excluir a instância do Dataproc Hub
- Para excluir sua instância do Dataproc Hub:
gcloud compute instances delete --project=${PROJECT} ${INSTANCE_NAME}
Excluir o bucket
- Para excluir o bucket do Cloud Storage criado em Antes de começar, incluindo os arquivos de dados armazenados no bucket:
gcloud storage rm gs://${BUCKET_NAME} --recursive