Comparar com o Google Cloud Serverless para Apache Spark

Para os Google Cloud clientes que confiam no Apache Spark para executar as respetivas cargas de trabalho de processamento de dados e estatísticas, uma decisão fundamental é escolher entre o Dataproc no Compute Engine (denominado "Dataproc" neste documento) e o Serverless para Apache Spark. Embora ambos os serviços ofereçam um ambiente Spark gerido, altamente escalável, pronto para produção e seguro, compatível com OSS e com suporte total para formatos de dados, estas duas plataformas diferem fundamentalmente na forma como a infraestrutura subjacente é gerida e faturada.

Este documento compara o Google Cloud Serverless para Apache Spark com o Dataproc e apresenta as respetivas funcionalidades e capacidades para ajudar a decidir qual a melhor solução de carga de trabalho do Spark.

Compare o Serverless para Apache Spark com o Dataproc

Se quiser aprovisionar e gerir infraestrutura e, em seguida, executar cargas de trabalho no Spark e noutras frameworks de processamento de código aberto, use o Dataproc no Compute Engine. A tabela seguinte apresenta as principais diferenças entre o Dataproc no Compute Engine e o Serverless para Apache Spark.

Capacidade Serverless para Apache Spark Dataproc no Compute Engine
Frameworks de processamento Cargas de trabalho em lote e sessões interativas: Spark Spark. Outras frameworks de código aberto, como o Hive, o Flink, o Trino e o Kafka
Sem servidor Sim Não
Tempo de arranque 50s 120s
Controlo de infraestruturas Não Sim
Gestão de recursos Sem servidor YARN
Suporte de GPU Yes Sim
Sessões interativas Sim Não
Contentores personalizados Yes Não
Acesso à VM (SSH) Não Sim
Versões do Java Java 17 e 21 Java 17 e versões anteriores

Decida qual o melhor serviço do Spark

Esta secção descreve as principais vantagens e os exemplos de utilização principais de cada serviço para ajudar a selecionar o melhor serviço para as suas cargas de trabalho do Spark.

Vista geral

O Dataproc e o Serverless para Apache Spark diferem no grau de controlo, na gestão da infraestrutura e no modo de faturação que cada um oferece.

  • Spark gerido pelo Dataproc: o Dataproc oferece clusters do Spark como serviço, executando o Spark gerido na sua infraestrutura do Compute Engine. Paga pelo tempo de atividade do cluster.
  • Sem servidor para Apache Spark: o sem servidor para Apache Spark oferece tarefas do Spark como serviço, executando o Spark numa infraestrutura Google Cloud totalmente gerida. Paga o tempo de execução da tarefa.

Devido a estas diferenças, cada serviço é mais adequado nos seguintes exemplos de utilização:

Serviço Exemplos de utilização
Dataproc Ambientes partilhados de execução prolongada
Cargas de trabalho que requerem um controlo detalhado sobre a infraestrutura
Migração de ambientes Hadoop e Spark antigos
Serverless para Apache Spark Diferentes ambientes de tarefas dedicados
Cargas de trabalho em lote agendadas
Gestão de código prioritária em relação à gestão de infraestruturas

Principais diferenças

Funcionalidade Dataproc Serverless para Apache Spark
Modelo de gestão Com base em clusters. Administra e gere clusters. Ambiente de execução sem servidor totalmente gerido.
Controlo e personalização Maior controlo sobre a configuração do cluster, os tipos de máquinas e o software. Capacidade de usar VMs de capacidade instantânea e reutilizar reservas e capacidade de recursos do Compute Engine. Adequado para cargas de trabalho que têm uma dependência de formatos de VMs específicos, como arquiteturas de CPU. Menos controlo da infraestrutura, com foco no envio de código e na especificação de parâmetros do Spark.
Exemplos de utilização Clusters partilhados de execução prolongada, migração de cargas de trabalho do Hadoop e Spark existentes com configurações personalizadas, cargas de trabalho que requerem uma personalização profunda. Consultas ad hoc, análise interativa, novos pipelines do Spark e cargas de trabalho com necessidades de recursos imprevisíveis.
Custos operacionais Custos gerais mais elevados que requerem gestão, escalabilidade e manutenção de clusters. Reduzir as despesas gerais. Google Cloud gere a infraestrutura, o dimensionamento e o aprovisionamento, o que permite um modelo NoOps. O Gemini Cloud Assist facilita a resolução de problemas, enquanto a ajustagem automática do Serverless para Apache Spark ajuda a oferecer um desempenho ideal.
Modelo de eficiência Eficiência obtida através da partilha de clusters entre tarefas e equipas, com um modelo de multi-posse. Sem sobrecarga de computação inativa: a atribuição de recursos de computação só ocorre quando a tarefa está em execução. Sem custos de arranque e encerramento. Sessões interativas partilhadas suportadas para melhorar a eficiência.
Controlo da localização Os clusters são zonais. A zona pode ser selecionada automaticamente durante a criação do cluster. O Serverless para Apache Spark suporta cargas de trabalho regionais sem custos adicionais para oferecer maior fiabilidade e disponibilidade.
Custo Faturação do tempo de execução do cluster, incluindo o arranque e o encerramento, com base no número de nós. Inclui a taxa de licença do Dataproc e o custo da infraestrutura. Faturado apenas pela duração da execução da tarefa do Spark, excluindo o arranque e o encerramento, com base nos recursos consumidos. Faturado como unidades de computação de dados (DCU) usadas e outros custos de infraestrutura.
Descontos de fidelidade (CUDs) Os DFs do Compute Engine aplicam-se a toda a utilização de recursos. Os CUDs baseados em gastos do BigQuery aplicam-se a tarefas do Serverless para Apache Spark.
Controlo de imagem e tempo de execução Os utilizadores podem fixar versões secundárias e subalternativas de imagens do Dataproc. Os utilizadores podem fixar versões secundárias do tempo de execução do Serverless para Apache Spark. As versões subalternativas são geridas pelo Serverless para Apache Spark.
Gestão de recursos YARN Sem servidor
Suporte de GPU Yes Yes
Sessões interativas Não Sim
Contentores personalizados Não Yes
Acesso à VM (SSH) Yes Não
Versões do Java Versões anteriores suportadas Java 17, 21
Tempo de arranque 120s 50s

Quando escolher o Dataproc

O Dataproc é um serviço gerido que pode usar para executar o Apache Spark e outras frameworks de processamento de dados de código aberto. Oferece um elevado grau de controlo e flexibilidade, o que a torna a escolha preferencial nos seguintes cenários:

  • Migrar cargas de trabalho do Hadoop e Spark existentes: suporta a migração de clusters do Hadoop ou Spark nas instalações para o Google Cloud. Replicar configurações existentes com alterações mínimas ao código, especialmente quando usa versões mais antigas do Spark.
  • Personalização e controlo detalhados: permite personalizar os tipos de máquinas de clusters, os tamanhos dos discos e as configurações de rede. Este nível de controlo é fundamental para o ajuste do desempenho e a otimização da utilização de recursos para tarefas complexas de longa duração.
  • Clusters persistentes e de longa duração: suporta tarefas do Spark contínuas e de longa duração, bem como clusters persistentes para várias equipas e projetos.
  • Diversidade do ecossistema de código aberto: oferece um ambiente unificado para executar pipelines de processamento de dados com ferramentas do ecossistema Hadoop, como Hive, Pig ou Presto, com as suas cargas de trabalho do Spark.
  • Conformidade com a segurança: permite o controlo sobre a infraestrutura para cumprir normas de segurança ou conformidade específicas, como a salvaguarda de informações de identificação pessoal (IIP) ou informações de saúde protegidas (PHI).
  • Flexibilidade da infraestrutura: oferece VMs de instância temporária e a capacidade de reutilizar reservas e a capacidade de recursos do Compute Engine para equilibrar a utilização de recursos e facilitar a sua estratégia de infraestrutura na nuvem.

Quando escolher o Serverless para Apache Spark

O Serverless for Apache Spark abstrai as complexidades da gestão de clusters, permitindo-lhe focar-se no código Spark. Isto torna-o uma excelente escolha para utilização nos seguintes cenários de tratamento de dados:

  • Análise interativa e ad hoc: para cientistas e analistas de dados que executam consultas interativas e análises exploratórias com o Spark, o modelo sem servidor oferece uma forma rápida de começar sem se concentrar na infraestrutura.
  • Pipelines e aplicações baseadas no Spark: quando cria novas pipelines de dados ou aplicações no Spark, o Serverless para Apache Spark pode acelerar significativamente o desenvolvimento ao remover a sobrecarga operacional da gestão de clusters.
  • Cargas de trabalho com procura esporádica ou imprevisível: para tarefas do Spark intermitentes ou tarefas com requisitos de recursos flutuantes, a escala automática sem servidor para o Apache Spark e os preços de pagamento por utilização (aplicam-se encargos ao consumo de recursos da tarefa) podem reduzir significativamente os custos.
  • Foco na produtividade dos programadores: ao eliminar a necessidade de aprovisionamento e gestão de clusters, o Serverless para Apache Spark acelera a criação de lógica empresarial, fornece estatísticas mais rápidas e aumenta a produtividade.
  • Operações simplificadas e despesas gerais reduzidas: a gestão da infraestrutura sem servidor para o Apache Spark reduz os encargos e os custos operacionais.

Resumir

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

  • Escolha o Dataproc quando precisar do máximo controlo, tiver de migrar cargas de trabalho do Hadoop ou Spark, ou precisar de um ambiente de cluster persistente, personalizado e partilhado.
  • Escolha o Serverless para Apache Spark pela facilidade de utilização, pela rentabilidade para cargas de trabalho intermitentes e pela capacidade de acelerar o desenvolvimento de novas aplicações Spark, removendo a sobrecarga da gestão de infraestruturas.

Depois de avaliar os fatores indicados nesta secção, selecione o serviço mais eficiente e económico para executar o Spark e desbloquear todo o potencial dos seus dados.