O Serviço Gerenciado para Apache Spark agora inclui as opções de produto anteriores "Serviço Gerenciado para Apache Spark no Compute Engine" (implantação de cluster) e "Serviço Gerenciado para Apache Spark" (implantação sem servidor).
Embora as implantações sem servidor e de cluster forneçam um ambiente Spark gerenciado, altamente escalonável, pronto para produção e seguro, compatível com OSS e com suporte total a formatos de dados, elas diferem na forma como gerenciam a infraestrutura subjacente e cobram pelos recursos. Confira os recursos e casos de uso a seguir para escolher uma solução do Spark.
Comparar implantações do Serviço Gerenciado para Apache Spark
A tabela a seguir lista as principais diferenças entre as implantações de cluster e sem servidor do Serviço Gerenciado para Apache Spark.
| Implantação | Sem servidor | Cluster |
|---|---|---|
| Frameworks de processamento | Cargas de trabalho em lote e sessões interativas: Spark | Spark. Outros frameworks de código aberto, como Hive, Flink, Trino e Kafka |
| Sem servidor | Sim | Não |
| Tempo de inicialização | 50 s | 120s |
| Controle de infraestrutura | Não | Sim |
| Gerenciamento de recursos | Sem servidor | YARN |
| Suporte a GPUs | Sim | Sim |
| Sessões interativas | Sim | Não |
| Contêineres personalizados | Sim | Não |
| Acesso à VM (SSH) | Não | Sim |
| Versões do Java | Java 17, 21 | Java 17 e versões anteriores |
Decidir sobre a melhor implantação do Serviço Gerenciado para Apache Spark
Nesta seção, descrevemos os principais pontos fortes do Serviço Gerenciado para Apache Spark e os principais casos de uso para ajudar você a selecionar a melhor implantação do Serviço Gerenciado para Apache Spark (cluster ou sem servidor) para suas cargas de trabalho do Spark.
Visão geral
As implantações do Serviço Gerenciado para Apache Spark diferem no grau de controle, no gerenciamento de infraestrutura e no modo de faturamento que cada uma oferece.
- Implantação sem servidor:o Serviço Gerenciado para Apache Spark oferece jobs do Spark como serviço, executando o Spark em uma infraestrutura totalmente gerenciada Google Cloud. Você paga pelo ambiente de execução do job.
- Implantação de cluster:oferece clusters do Spark como serviço, executando o Spark gerenciado na sua infraestrutura do Compute Engine. Você paga pelo tempo de atividade do cluster.
Devido a essas diferenças, cada implantação do Serviço Gerenciado para Apache Spark é mais adequada para os seguintes casos de uso:
| Implantação | Casos de uso |
|---|---|
| sem servidor | Diferentes ambientes de job dedicados Cargas de trabalho em lote programadas Gerenciamento de código priorizado em relação ao gerenciamento de infraestrutura |
| cluster | Ambientes compartilhados de longa duração Cargas de trabalho que exigem controle granular sobre a infraestrutura Migração de ambientes legados do Hadoop e do Spark |
principais diferenças
| Recurso | implantação sem servidor | implantação de cluster |
|---|---|---|
| Modelo de gerenciamento | Ambiente de execução totalmente gerenciado e sem servidor. | Baseado em cluster. Você provisiona e gerencia clusters. |
| Controle e personalização | Menos controle da infraestrutura, com foco no envio de código e na especificação de parâmetros do Spark. | Maior controle sobre a configuração do cluster, os tipos de máquina e o software. Capacidade de usar VMs spot e reutilizar reservas e capacidade de recursos do Compute Engine. Adequado para cargas de trabalho que dependem de formatos de VM específicos, como arquiteturas de CPU. |
| Casos de uso | Consultas ad hoc, análises interativas, novos pipelines do Spark e cargas de trabalho com necessidades de recursos imprevisíveis. | Clusters compartilhados de longa duração, migração de cargas de trabalho atuais do Hadoop e do Spark com configurações personalizadas, cargas de trabalho que exigem personalização detalhada. |
| Trabalho operacional | Menor sobrecarga.O Google Cloud gerencia a infraestrutura, o escalonamento e o provisionamento, permitindo um modelo NoOps. O Gemini Cloud Assist facilita a solução de problemas, enquanto o ajuste automático sem servidor ajuda a otimizar o desempenho. |
Overhead maior que exige gerenciamento de clusters, escalonamento e manutenção. |
| Modelo de eficiência | Sem sobrecarga de computação ociosa: os recursos de computação são alocados apenas quando o job está em execução. Sem custo de inicialização e desligamento. Sessões interativas compartilhadas para melhorar a eficiência. | Eficiência obtida ao compartilhar clusters entre jobs e equipes, com um modelo de multilocação. |
| Controle de local | O Serviço Gerenciado para Apache Spark oferece suporte a cargas de trabalho regionais sem custo financeiro extra para fornecer mais confiabilidade e disponibilidade. | Os clusters são zonais. A zona pode ser selecionada automaticamente durante a criação do cluster. |
| Custo | Cobrado apenas pela duração da execução do job do Spark, sem incluir a inicialização e a desativação, com base nos recursos consumidos. Cobrado como unidades de computação de dados (DCU) usadas e outros custos de infraestrutura. | Cobrado pelo tempo em que o cluster está em execução, incluindo inicialização e encerramento, com base no número de nós. Inclui a taxa de licença do Serviço Gerenciado para Apache Spark e o custo da infraestrutura. |
| Descontos por compromisso de uso (CUDs) | Os CUDs com base em gastos do BigQuery se aplicam aos jobs do Serviço Gerenciado para Apache Spark. | Os CUDs do Compute Engine se aplicam a todo o uso de recursos. |
| Controle de imagem e ambiente de execução | Os usuários podem fixar versões secundárias do ambiente de execução do Serviço Gerenciado para Apache Spark. As versões secundárias são gerenciadas pelo Serviço Gerenciado para Apache Spark. | Os usuários podem fixar versões de imagem secundárias e subsecundárias do Serviço Gerenciado para Apache Spark. |
| Gerenciamento de recursos | sem servidor | YARN |
| Suporte a GPUs | Sim | Sim |
| Sessões interativas | Sim | Não |
| Contêineres personalizados | Sim | Não |
| Acesso à VM (SSH) | Não | Sim |
| Versões do Java | Java 17, 21 |
Versões anteriores compatíveis |
| Tempo de inicialização | 50 s | 120s |
Quando escolher a implantação sem servidor
A implantação sem servidor do Serviço Gerenciado para Apache Spark abstrai as complexidades do gerenciamento de clusters, permitindo que você se concentre no código do Spark. Isso o torna uma excelente opção para uso nos seguintes cenários de processamento de dados:
- Análise ad hoc e interativa:para cientistas e analistas de dados que executam consultas interativas e análises exploratórias usando o Spark, o modelo sem servidor oferece uma maneira rápida de começar sem se preocupar com a infraestrutura.
- Aplicativos e pipelines baseados no Spark:ao criar novos pipelines de dados ou aplicativos no Spark, o Serviço Gerenciado para Apache Spark pode acelerar significativamente o desenvolvimento, removendo a sobrecarga operacional do gerenciamento de clusters.
- Cargas de trabalho com demanda esporádica ou imprevisível:para jobs intermitentes do Spark ou jobs com requisitos de recursos variáveis, o escalonamento automático sem servidor e os preços de pagamento por uso (as cobranças se aplicam ao consumo de recursos do job) podem reduzir significativamente os custos.
- Foco na produtividade do desenvolvedor:ao eliminar a necessidade de provisionamento e gerenciamento de clusters, o Serviço Gerenciado para Apache Spark acelera a criação da lógica de negócios, fornece insights mais rápidos e aumenta a produtividade.
- Operações simplificadas e redução de custos indiretos:o gerenciamento de infraestrutura do Serviço Gerenciado para Apache Spark reduz os custos e as cargas operacionais.
Quando escolher a implantação de cluster
É possível usar a implantação de cluster do Serviço Gerenciado para Apache Spark para executar o Apache Spark e outros frameworks de processamento de dados de código aberto. Ele oferece um alto grau de controle e flexibilidade, o que o torna a escolha preferida nos seguintes cenários:
- Migração de cargas de trabalho atuais do Hadoop e do Spark:permite migrar clusters do Hadoop ou do Spark no local para o Google Cloud. Replique as configurações atuais com o mínimo de mudanças no código, principalmente ao usar versões mais antigas do Spark.
- Personalização e controle profundos:permite personalizar tipos de máquina de cluster, tamanhos de disco e configurações de rede. Esse nível de controle é fundamental para ajustar o desempenho e otimizar a utilização de recursos em jobs complexos e de longa duração.
- Clusters permanentes e de longa duração:oferece suporte a jobs do Spark contínuos e de longa duração e clusters permanentes para várias equipes e projetos.
- Ecossistema de código aberto diversificado:oferece um ambiente unificado para executar pipelines de tratamento de dados que usam ferramentas do ecossistema do Hadoop, como Hive, Pig ou Presto, com suas cargas de trabalho do Spark.
- Conformidade de segurança:permite o controle sobre a infraestrutura para atender a padrões específicos de segurança ou conformidade, como a proteção de informações de identificação pessoal (PII) ou informações protegidas de saúde (PHI).
- Flexibilidade de infraestrutura:oferece VMs spot e a capacidade de reutilizar reservas e capacidade de recursos do Compute Engine para equilibrar o uso de recursos e facilitar sua estratégia de infraestrutura em nuvem.
Resumo
A decisão de usar o cluster do Serviço Gerenciado para Apache Spark ou a implantação sem servidor depende dos requisitos de carga de trabalho, das preferências operacionais e do nível de controle preferido.
- Escolha o Serviço Gerenciado para Apache Spark sem servidor pela facilidade de uso, pelo custo-benefício para cargas de trabalho intermitentes e pela capacidade de acelerar o desenvolvimento de novos aplicativos do Spark, removendo a sobrecarga do gerenciamento de infraestrutura.
- Escolha os clusters do Serviço Gerenciado para Apache Spark quando precisar de controle máximo, migrar cargas de trabalho do Hadoop ou do Spark ou de um ambiente de cluster compartilhado, personalizado e persistente.
Depois de avaliar os fatores listados nesta seção, selecione a implantação mais eficiente e econômica do Serviço Gerenciado para Apache Spark para executar o Spark e aproveitar todo o potencial dos seus dados.