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.