Comparação com o Google Cloud Serverless para Apache Spark

Para clientes Google Cloud que dependem do Apache Spark para executar cargas de trabalho de análise e processamento de dados, uma decisão importante é escolher entre o Dataproc no Compute Engine (chamado de "Dataproc" neste documento) e o Serverless para Apache Spark. Embora os dois serviços ofereçam um ambiente Spark gerenciado, altamente escalonável, pronto para produção e seguro, compatível com OSS e com suporte total para formatos de dados, essas duas plataformas diferem fundamentalmente na forma como a infraestrutura subjacente é gerenciada e faturada.

Este documento compara o Google Cloud Serverless para Apache Spark com o Dataproc e lista os recursos e as funcionalidades deles para ajudar você a decidir qual é a melhor solução de carga de trabalho do Spark.

Comparar o Serverless para Apache Spark com o Dataproc

Se você quiser provisionar e gerenciar a infraestrutura e executar cargas de trabalho no Spark e em outros frameworks de processamento de código aberto, use o Dataproc no Compute Engine. A tabela a seguir lista as principais diferenças entre o Dataproc no Compute Engine e o Serverless para Apache Spark.

Capacidade Sem servidor para Apache Spark Dataproc no Compute Engine
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 qual é o melhor serviço do Spark

Esta seção descreve os principais pontos fortes e os principais casos de uso de cada serviço para ajudar você a selecionar o melhor para suas cargas de trabalho do Spark.

Visão geral

O Dataproc e o Serverless para Apache Spark diferem no grau de controle, no gerenciamento de infraestrutura e no modo de faturamento que cada um oferece.

  • Spark gerenciado pelo Dataproc:o Dataproc oferece clusters do Spark como um serviço, executando o Spark gerenciado na sua infraestrutura do Compute Engine. Você paga pelo tempo de atividade do cluster.
  • Serverless para Apache Spark:oferece jobs do Spark como um serviço, executando o Spark em uma infraestrutura Google Cloud totalmente gerenciada. Você paga pelo tempo de execução do job.

Devido a essas diferenças, cada serviço é mais adequado para os seguintes casos de uso:

Serviço Casos de uso
Dataproc 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
Sem servidor para Apache Spark Diferentes ambientes de job dedicados
Cargas de trabalho em lote programadas
Priorização do gerenciamento de código em vez do gerenciamento de infraestrutura

principais diferenças

Recurso Dataproc Sem servidor para Apache Spark
Modelo de gestão Baseado em cluster. Você provisiona e gerencia clusters. Ambiente de execução totalmente gerenciado e sem servidor.
Controle e personalização Mais controle sobre a configuração do cluster, os tipos de máquinas e o software. Capacidade de usar VMs Spot e reutilizar reservas e capacidade de recursos do Compute Engine. Adequado para cargas de trabalho que têm uma dependência de formatos de VM específicos, como arquiteturas de CPU. Menos controle de infraestrutura, com foco no envio de código e na especificação de parâmetros do Spark.
Casos de uso Clusters compartilhados de longa duração, migração de cargas de trabalho do Hadoop e do Spark com configurações personalizadas, cargas de trabalho que exigem personalização profunda. Consultas ad hoc, análises interativas, novos pipelines do Spark e cargas de trabalho com necessidades de recursos imprevisíveis.
Trabalho operacional Maior overhead que exige gerenciamento, escalonamento e manutenção de clusters. Redução da 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 do Serverless para Apache Spark ajuda a oferecer o desempenho ideal.
Modelo de eficiência Eficiência obtida ao compartilhar clusters entre jobs e equipes com um modelo de multilocação. Sem sobrecarga de computação ociosa: alocação de recursos de computação apenas quando o job está em execução. Sem custo de inicialização e desligamento. Sessões interativas compartilhadas para melhorar a eficiência.
Controle de localização Os clusters são zonais. A zona pode ser selecionada automaticamente durante a criação do cluster. O Serverless para Apache Spark oferece suporte a cargas de trabalho regionais sem custo extra para aumentar a confiabilidade e a disponibilidade.
Custo O faturamento é feito 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 Dataproc e o custo de infraestrutura. A cobrança é feita apenas pela duração da execução do job do Spark, sem incluir a inicialização e o encerramento, com base nos recursos consumidos. Cobrado como unidades de computação de dados (DCU) usadas e outros custos de infraestrutura.
Descontos por uso contínuo (CUDs) Os CUDs do Compute Engine se aplicam a todo o uso de recursos. Os CUDs baseados em gastos do BigQuery se aplicam a jobs do Serverless para Apache Spark.
Controle de imagem e ambiente de execução Os usuários podem fixar versões secundárias e subalternas de imagens do Dataproc. Os usuários podem fixar versões secundárias do ambiente de execução do Serverless para Apache Spark. As versões subalternas são gerenciadas pelo Serverless para Apache Spark.
Gerenciamento de recursos YARN Sem servidor
Suporte a GPU Sim Sim
Sessões interativas Não Sim
Contêineres personalizados Não Sim
Acesso à VM (SSH) Sim Não
Versões do Java Versões anteriores com suporte Java 17, 21
Tempo de inicialização 120s 50 s

Quando escolher o Dataproc

O Dataproc é um serviço gerenciado que pode ser usado 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, sendo a opção preferida nos seguintes cenários:

  • Migração de cargas de trabalho do Hadoop e do Spark:oferece suporte à migração de 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 avançados:permite personalizar tipos de máquinas de cluster, tamanhos de disco e configurações de rede. Esse nível de controle é essencial para o ajuste de performance e a otimização da utilização de recursos em jobs complexos e de longa duração.
  • Clusters de longa duração e persistentes:oferecem suporte a jobs do Spark contínuos e de longa duração e a clusters persistentes para várias equipes e projetos.
  • Ecossistema de código aberto diversificado:oferece um ambiente unificado para executar pipelines de processamento de dados com ferramentas do ecossistema Hadoop, como Hive, Pig ou Presto, com suas cargas de trabalho do Spark.
  • Conformidade com a segurança:permite o controle da infraestrutura para atender a padrões específicos de segurança ou compliance, como a proteção de informações de identificação pessoal (PII) ou informações protegidas de saúde (PHI).
  • Flexibilidade da 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 infraestrutura em nuvem.

Quando escolher o Serverless para Apache Spark

O Serverless para Apache Spark abstrai as complexidades do gerenciamento de clusters, permitindo que você se concentre no código Spark. Isso o torna uma excelente opção para uso nos seguintes cenários de processamento de dados:

  • Análise interativa e ad hoc: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 concentrar na infraestrutura.
  • Aplicativos e pipelines baseados no Spark:ao criar novos pipelines ou aplicativos de dados no Spark, o Serverless 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 com requisitos de recursos variáveis, o escalonamento automático do Serverless para Apache Spark e o preço pago 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 Serverless para Apache Spark acelera a criação de lógica de negócios, fornece insights mais rápidos e aumenta a produtividade.
  • Operações simplificadas e sobrecarga reduzida:o gerenciamento da infraestrutura do Serverless para Apache Spark reduz custos e sobrecarga operacional.

Resumindo

A decisão de usar o Dataproc ou o Serverless para Apache Spark depende dos requisitos de carga de trabalho, das preferências operacionais e do nível de controle desejado.

  • Escolha o Dataproc quando precisar de controle máximo, migrar cargas de trabalho do Hadoop ou do Spark ou precisar de um ambiente de cluster persistente, personalizado e compartilhado.
  • Escolha o Serverless para Apache Spark pela facilidade de uso, custo-benefício para cargas de trabalho intermitentes e capacidade de acelerar o desenvolvimento de novos aplicativos Spark, removendo a sobrecarga do gerenciamento de infraestrutura.

Depois de avaliar os fatores listados nesta seção, selecione o serviço mais eficiente e econômico para executar o Spark e aproveitar todo o potencial dos seus dados.