Principais conceitos do Serviço Gerenciado para Apache Spark

Neste documento, explicamos os principais conceitos, os elementos básicos, os recursos principais e os benefícios do Serviço Gerenciado para Apache Spark. Entender esses conceitos básicos ajuda você a usar o Serviço Gerenciado para Apache Spark de maneira eficaz nas suas tarefas de tratamento de dados.

O modelo sem servidor

O Serviço Gerenciado para Apache Spark sem servidor é o modelo moderno de execução automatizada do Serviço Gerenciado para Apache Spark. Ele permite executar jobs sem provisionar, gerenciar ou escalonar a infraestrutura: o Serviço Gerenciado para Apache Spark cuida dos detalhes para você.

  • Lotes: um lote (também chamado de carga de trabalho em lote) é o equivalente sem servidor de um job do Serviço Gerenciado para Apache Spark. Você envia seu código, como um job do Spark, para o serviço. O Serviço Gerenciado para Apache Spark provisiona os recursos necessários sob demanda, executa o job e os remove. Você não cria nem gerencia recursos de cluster ou job. O serviço faz o trabalho por você.

  • Sessões interativas: as sessões interativas oferecem um ambiente em tempo real e sob demanda para análise exploratória de dados, geralmente em um notebook Jupyter. As sessões interativas oferecem a conveniência de um espaço de trabalho temporário e sem servidor que pode ser usado para executar consultas e desenvolver código sem precisar provisionar e gerenciar recursos de cluster e notebook.

  • Perfis de ambiente de execução (modelos de sessão): um perfil de ambiente de execução (chamado de modelo de sessão na Google Cloud CLI e na API Dataproc) é uma configuração reutilizável que pode ser usada para definir sessões interativas. O perfil contém configurações de sessão, como nível de computação, configuração do executor, propriedades do Spark e dependências de biblioteca. Use o perfil de ambiente de execução para criar ambientes de sessão interativa para desenvolvimento, normalmente em um notebook do Jupyter.

O modelo baseado em cluster

O Serviço Gerenciado para Apache Spark em clusters é a maneira padrão e centrada em infraestrutura de usar o Serviço Gerenciado para Apache Spark. Ele oferece controle total sobre um conjunto dedicado de máquinas virtuais para suas tarefas de processamento de dados.

  • Clusters: um cluster é seu mecanismo de tratamento de dados pessoais, composto por máquinas virtuais do Google Cloud . Você cria um cluster para executar frameworks de código aberto, como o Apache Spark e o Apache Hadoop. Você tem controle total sobre o tamanho do cluster, os tipos de máquina e a configuração.
  • Jobs: um job é uma tarefa específica, como um script PySpark ou uma consulta Hadoop. Em vez de executar um job diretamente em um cluster, você o envia para o Serviço Gerenciado para Apache Spark, que gerencia a execução do job para você. É possível enviar vários jobs para o cluster.
  • Modelos de fluxo de trabalho: um modelo de fluxo de trabalho é uma definição reutilizável que orquestra uma série de jobs (um fluxo de trabalho). Ele pode definir dependências entre jobs, por exemplo, para executar um job de machine learning somente depois que um job de limpeza de dados for concluído. O fluxo de trabalho com modelo pode ser executado em um cluster atual ou em um cluster temporário (efêmero) criado para executar o fluxo de trabalho e, em seguida, excluído após a conclusão do fluxo de trabalho. Você pode usar o modelo para executar o fluxo de trabalho definido sempre que necessário.
  • Políticas de escalonamento automático: uma política de escalonamento automático contém regras que você define para adicionar ou remover máquinas de trabalho de um cluster com base na carga de trabalho do cluster, a fim de otimizar dinamicamente o custo e o desempenho do cluster.

Personalização do ambiente

O Serviço Gerenciado para Apache Spark em clusters oferece recursos e componentes de cluster que podem ser usados para personalizar o ambiente do aplicativo.

Notebooks e ambientes de desenvolvimento

Os notebooks e IDEs sem servidor do Serviço Gerenciado para Apache Spark estão vinculados a ambientes de desenvolvimento integrados em que é possível escrever e executar seu código.

  • BigQuery Studio e Workbench: são ambientes unificados de análise e notebook. Eles permitem que você escreva código (por exemplo, em um notebook do Jupyter) e use um cluster do Serviço Gerenciado para Apache Spark ou uma sessão sem servidor como o poderoso mecanismo de back-end para executar seu código em grandes conjuntos de dados.
  • Plug-in do JupyterLab do Serviço Gerenciado para Apache Spark: esse JupyterLabextension oficial funciona como um painel de controle para o Serviço Gerenciado para Apache Spark sem servidor no ambiente do notebook. Ele simplifica seu fluxo de trabalho, permitindo que você navegue, crie e gerencie clusters e envie jobs sem precisar sair da interface do Jupyter.
  • Google Cloud Data Agent Kit: o Data Agent Kit permite que cientistas de dados, engenheiros e desenvolvedores gerenciem todo o ciclo de vida da carga de trabalho de dados no ambiente de desenvolvimento integrado. O Data Agent Kit oferece suporte ao Serviço Gerenciado para Apache Spark, permitindo que você desenvolva código, crie sessões interativas e crie pipelines diretamente do VS Code ou de uma CLI agêntica compatível.
  • Conector Python do Serviço Gerenciado para Apache Spark Connect: essa biblioteca Python simplifica o processo de uso do Spark Connect com o Serviço Gerenciado para Apache Spark. Ele lida com a autenticação e a configuração de endpoints, facilitando a conexão do ambiente Python local, como um notebook ou ambiente de desenvolvimento integrado, a um cluster remoto do Serviço Gerenciado para Apache Spark para desenvolvimento interativo.

O modelo de contêiner

O Serviço Gerenciado para Apache Spark no Google Kubernetes Engine implanta clusters virtuais do Serviço Gerenciado para Apache Spark em um cluster do GKE. Ao contrário dos clusters do Serviço Gerenciado para Apache Spark, os clusters virtuais do Serviço Gerenciado para Apache Spark não provisionam VMs mestre e de worker separadas. Em vez disso, eles provisionam pools de nós em um cluster do GKE. Os jobs do Serviço Gerenciado para Apache Spark no GKE são executados como pods nesses pools de nós. Os pools de nós e a programação de pods neles são gerenciados pelo Serviço Gerenciado para Apache Spark no GKE.