Comparer les déploiements sans serveur et de cluster Managed Service pour Apache Spark

Managed Service pour Apache Spark inclut désormais les options de produit "Dataproc sur Compute Engine" (déploiement de cluster) et "Google Cloud Serverless pour Apache Spark" (déploiement sans serveur) précédentes.

Bien que les deux options fournissent un environnement Spark géré, hautement évolutif, prêt pour la production et sécurisé, compatible avec l'OSS et offrant une prise en charge complète des formats de données, elles diffèrent dans la façon dont elles gèrent l'infrastructure sous-jacente et facturent les ressources. Passez en revue les fonctionnalités et les cas d'utilisation suivants pour vous aider à choisir une solution Spark.

Pour en savoir plus sur les déploiements sans serveur Managed Service pour Apache Spark, consultez Présentation des déploiements sans serveur Managed Service pour Apache Spark.

Comparer les déploiements Managed Service pour Apache Spark

Le tableau suivant répertorie les principales différences entre les déploiements de clusters Managed Service pour Apache Spark et sans serveur.

Déploiement Sans serveur Cluster
Frameworks de traitement Charges de travail par lot et sessions interactives : Spark Spark. D'autres frameworks Open Source, tels que Hive, Flink, Trino et Kafka
Sans serveur Oui Non
Temps de démarrage 50s 120 s
Contrôle de l'infrastructure Non Oui
Gestion des ressources Sans serveur YARN
Compatibilité avec les GPU Oui Oui
Sessions interactives Oui Non
Conteneurs personnalisés Oui Non
Accès à la VM (SSH) Non Oui
Versions Java Java 17, 21 Java 17 et versions précédentes

Choisir le meilleur déploiement Managed Service pour Apache Spark

Cette section décrit les principaux avantages et cas d'utilisation de Managed Service pour Apache Spark. Elle vous aidera à choisir le meilleur déploiement de Managed Service pour Apache Spark (cluster ou sans serveur) pour vos charges de travail Spark.

Présentation

Les déploiements Managed Service pour Apache Spark diffèrent en termes de degré de contrôle, de gestion de l'infrastructure et de mode de facturation.

  • Déploiement sans serveur : Managed Service pour Apache Spark propose des jobs Spark en tant que service, exécutant Spark sur une infrastructure Google Cloudentièrement gérée. Vous payez la durée d'exécution du job.
  • Déploiement de cluster : offre des clusters Spark en tant que service, exécutant Spark géré sur votre infrastructure Compute Engine. Vous payez pour la durée de disponibilité du cluster.

En raison de ces différences, chaque déploiement Managed Service pour Apache Spark est le mieux adapté aux cas d'utilisation suivants :

Déploiement Cas d'utilisation
sans serveur Différents environnements de job dédiés
Charges de travail par lot planifiées
Gestion du code privilégiée par rapport à la gestion de l'infrastructure
cluster Environnements partagés de longue durée
Charges de travail nécessitant un contrôle précis de l'infrastructure
Migration des anciens environnements Hadoop et Spark

Différences majeures

Fonctionnalité déploiement sans serveur déploiement de cluster
Modèle de gestion Environnement d'exécution sans serveur et entièrement géré. Basé sur les clusters : vous provisionnez et gérez les clusters.
Contrôle et personnalisation Moins de contrôle sur l'infrastructure, avec un accent mis sur l'envoi de code et la spécification des paramètres Spark. Vous bénéficiez d'un contrôle accru sur la configuration du cluster, les types de machines et les logiciels. Vous pouvez utiliser des VM spot, et réutiliser les réservations et la capacité des ressources Compute Engine. Cette option convient aux charges de travail qui dépendent de formes de VM spécifiques, telles que les architectures de processeur.
Cas d'utilisation Requêtes ad hoc, analyses interactives, nouveaux pipelines Spark et charges de travail avec des besoins en ressources imprévisibles. Clusters partagés de longue durée, migration des charges de travail Hadoop et Spark existantes avec des configurations personnalisées, charges de travail nécessitant une personnalisation poussée.
Coûts opérationnels Réduisez les frais généraux. Google Cloud gère l'infrastructure, le scaling et le provisionnement, ce qui permet d'utiliser un modèle NoOps. Gemini Cloud Assist facilite le dépannage, tandis que le réglage automatique sans serveur contribue à optimiser les performances. Frais généraux plus élevés nécessitant la gestion, la mise à l'échelle et la maintenance des clusters.
Modèle d'efficacité Aucun frais généraux de calcul inactif : les ressources de calcul ne sont allouées que lorsque le job est en cours d'exécution. Aucun coût de démarrage ni d'arrêt. Sessions interactives partagées prises en charge pour une efficacité accrue. L'efficacité est améliorée grâce au partage de clusters entre les tâches et les équipes, avec un modèle mutualisé.
Paramètres géographiques Managed Service pour Apache Spark est compatible avec les charges de travail régionales sans frais supplémentaires, ce qui permet d'améliorer la fiabilité et la disponibilité. Les clusters sont zonaux. La zone peut être sélectionnée automatiquement lors de la création du cluster.
Coût Vous n'êtes facturé que pour la durée d'exécution du job Spark, à l'exclusion du démarrage et de l'arrêt, en fonction des ressources consommées. Facturé en fonction des unités de calcul des données (DCU) utilisées et des autres coûts d'infrastructure. Vous êtes facturé pour la durée d'exécution du cluster, y compris le démarrage et l'arrêt, en fonction du nombre de nœuds. Inclut les frais de licence Managed Service pour Apache Spark et les coûts d'infrastructure.
Remises sur engagement d'utilisation (CUD) Les CUD basés sur les dépenses BigQuery s'appliquent aux jobs Managed Service pour Apache Spark. Les remises sur engagement d'utilisation Compute Engine s'appliquent à toute utilisation des ressources.
Contrôle de l'image et de l'exécution Les utilisateurs peuvent épingler des versions d'exécution mineures de Managed Service pour Apache Spark. Les versions sous-mineures sont gérées par Managed Service pour Apache Spark. Les utilisateurs peuvent épingler des versions mineures et sous-mineures des images Managed Service pour Apache Spark.
Gestion des ressources sans serveur YARN
Compatibilité avec les GPU Oui Oui
Sessions interactives Oui Non
Conteneurs personnalisés Oui Non
Accès aux VM (SSH) Non Oui
Versions Java Java 17, 21 Versions précédentes compatibles
Temps de démarrage 50s 120 s

Quand choisir le déploiement sans serveur ?

Le déploiement sans serveur de Managed Service pour Apache Spark élimine les complexités liées à la gestion des clusters, ce qui vous permet de vous concentrer sur le code Spark. Il est donc idéal pour les scénarios de traitement de données suivants :

  • Analyse ad hoc et interactive : pour les data scientists et les analystes qui exécutent des requêtes interactives et des analyses exploratoires à l'aide de Spark, le modèle sans serveur offre un moyen rapide de se lancer sans se concentrer sur l'infrastructure.
  • Applications et pipelines basés sur Spark : lorsque vous créez des applications ou des pipelines de données sur Spark, Managed Service pour Apache Spark peut accélérer considérablement le développement en supprimant la surcharge opérationnelle de la gestion des clusters.
  • Charges de travail avec une demande sporadique ou imprévisible : pour les tâches Spark intermittentes ou celles dont les besoins en ressources fluctuent, l'autoscaling sans serveur et la tarification à l'utilisation (les frais s'appliquent à la consommation de ressources des tâches) peuvent réduire considérablement les coûts.
  • Productivité des développeurs : en éliminant le besoin de provisionner et de gérer des clusters, Managed Service pour Apache Spark accélère la création de la logique métier, fournit des insights plus rapidement et augmente la productivité.
  • Opérations simplifiées et frais généraux réduits : la gestion de l'infrastructure Managed Service pour Apache Spark réduit les charges opérationnelles et les coûts.

Quand choisir le déploiement de cluster ?

Vous pouvez utiliser le déploiement de clusters Managed Service pour Apache Spark afin d'exécuter Apache Spark et d'autres frameworks de traitement de données Open Source. Il offre un haut degré de contrôle et de flexibilité, ce qui en fait le choix privilégié dans les scénarios suivants :

  • Migration des charges de travail Hadoop et Spark existantes : permet de migrer les clusters Hadoop ou Spark sur site vers Google Cloud. Répliquez les configurations existantes avec un minimum de modifications du code, en particulier lorsque vous utilisez d'anciennes versions de Spark.
  • Personnalisation et contrôle approfondis : vous pouvez personnaliser les types de machines, la taille des disques et les configurations réseau des clusters. Ce niveau de contrôle est essentiel pour ajuster les performances et optimiser l'utilisation des ressources pour les jobs complexes de longue durée.
  • Clusters persistants et de longue durée : compatibles avec les jobs Spark continus et de longue durée, et avec les clusters persistants pour plusieurs équipes et projets.
  • Écosystème Open Source diversifié : fournit un environnement unifié pour exécuter des pipelines de traitement de données à l'aide d'outils de l'écosystème Hadoop, tels que Hive, Pig ou Presto, avec vos charges de travail Spark.
  • Conformité en termes de sécurité : permet de contrôler l'infrastructure pour répondre à des normes de sécurité ou de conformité spécifiques, comme la protection des informations permettant d'identifier personnellement l'utilisateur ou des données de santé protégées.
  • Flexibilité de l'infrastructure : propose des VM Spot et la possibilité de réutiliser les réservations et la capacité des ressources Compute Engine pour équilibrer l'utilisation des ressources et faciliter votre stratégie d'infrastructure cloud.

En résumé

Le choix entre un cluster Managed Service pour Apache Spark et un déploiement sans serveur dépend de vos exigences en termes de charge de travail, de vos préférences opérationnelles et du niveau de contrôle souhaité.

  • Choisissez le service géré pour Apache Spark sans serveur pour sa facilité d'utilisation, sa rentabilité pour les charges de travail intermittentes et sa capacité à accélérer le développement de nouvelles applications Spark en supprimant la surcharge de la gestion de l'infrastructure.
  • Choisissez les clusters Managed Service pour Apache Spark si vous avez besoin d'un contrôle maximal, si vous devez migrer des charges de travail Hadoop ou Spark, ou si vous avez besoin d'un environnement de cluster persistant, personnalisé et partagé.

Après avoir évalué les facteurs listés dans cette section, sélectionnez le déploiement Managed Service pour Apache Spark le plus efficace et le plus économique pour exécuter Spark et exploiter tout le potentiel de vos données.