Managed Service pour Apache Spark inclut désormais les options de produit précédentes "Dataproc sur Compute Engine" (déploiement de cluster) et la précédente "Google Cloud Serverless pour Apache Spark" (déploiement sans serveur).
Bien que les deux options fournissent un environnement Spark géré, hautement évolutif, prêt pour la production et sécurisé, compatible avec les logiciels Open Source 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. Consultez 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 de Managed Service pour Apache Spark, consultez la présentation des déploiements sans serveur de 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 cluster Managed Service pour Apache Spark et les déploiements sans serveur.
| Déploiement | Sans serveur | Cluster |
|---|---|---|
| Frameworks de traitement | Charges de travail par lot et sessions interactives : Spark | Spark. Autres frameworks Open Source, tels que Hive, Flink, Trino et Kafka |
| Sans serveur | Oui | Non |
| Temps de démarrage | 50s | 120s |
| 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 antérieures |
Choisir le meilleur déploiement Managed Service pour Apache Spark
Cette section présente les principaux avantages et cas d'utilisation de Managed Service pour Apache Spark afin de vous aider à sélectionner le meilleur déploiement 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 niveau 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 entièrement gérée. Google Cloud Vous payez pour la durée d'exécution du job.
- Déploiement de cluster : propose des clusters Spark en tant que service, exécutant Spark géré sur votre infrastructure Compute Engine. Vous payez pour la disponibilité du cluster.
En raison de ces différences, chaque déploiement Managed Service pour Apache Spark est plus 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 prioritaire 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 d'environnements Hadoop et Spark existants |
Différences majeures
| Fonctionnalité | Déploiement sans serveur | Déploiement de cluster |
|---|---|---|
| Modèle de gestion | Environnement d'exécution sans serveur entièrement géré. | Basé sur un cluster. Vous provisionnez et gérez les clusters. |
| Contrôle et personnalisation | Contrôle réduit de l'infrastructure, avec un accent sur l'envoi de code et la spécification des paramètres Spark. | Contrôle accru de la configuration du cluster, des types de machines et des logiciels. Possibilité d'utiliser des VM Spot, et de réutiliser des réservations et la capacité de ressources Compute Engine. 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 de 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 | Coûts réduits. Google Cloud gère l'infrastructure, la mise à l'échelle et le provisionnement, ce qui permet d'adopter un modèle NoOps. Gemini Cloud Assist facilite le dépannage, tandis que le réglage automatique sans serveur permet d'optimiser les performances. |
Coûts plus élevés nécessitant la gestion, le scaling et la maintenance des clusters. |
| Modèle d'efficacité | Aucun frais généraux de calcul inactif : allocation des ressources de calcul uniquement lorsque le job est en cours d'exécution. Aucun coût de démarrage ni d'arrêt. Sessions interactives partagées compatibles pour une efficacité accrue. | Efficacité obtenue en partageant des clusters entre les jobs et les équipes, avec un modèle de partage mutualisé. |
| Contrôle de l'emplacement | Managed Service pour Apache Spark prend en charge les charges de travail régionales sans frais supplémentaires afin d'offrir une fiabilité et une disponibilité accrues. | Les clusters sont zonaux. La zone peut être sélectionnée automatiquement lors de la création du cluster. |
| Coût | Facturation uniquement pour la durée d'exécution du job Spark, hors démarrage et arrêt, en fonction des ressources consommées. Facturation en tant qu'unités de calcul des données (DCU) utilisées et autres coûts d'infrastructure. | Facturation 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ées sur les dépenses BigQuery s'appliquent aux jobs Managed Service pour Apache Spark. | Les CUD Compute Engine s'appliquent à toutes les utilisations de ressources. |
| Contrôle de l'image et de l'environnement d'exécution | Les utilisateurs peuvent épingler des versions mineures de l'environnement d'exécution 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 à la VM (SSH) | Non | Oui |
| Versions Java | Java 17, 21 |
Versions précédentes compatibles |
| Temps de démarrage | 50s | 120s |
Quand choisir un déploiement sans serveur
Le déploiement sans serveur 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 commencer sans se concentrer sur l'infrastructure.
- Applications et pipelines basés sur Spark : lorsque vous créez des pipelines de données ou des applications sur Spark, Managed Service pour Apache Spark peut accélérer considérablement le développement en supprimant les frais généraux opérationnels liés à la gestion des clusters.
- Charges de travail avec une demande sporadique ou imprévisible : pour les jobs Spark intermittents ou les jobs dont les besoins en ressources varient, l'autoscaling sans serveur et la tarification à l'utilisation (des frais s'appliquent à la consommation de ressources du job) peuvent réduire considérablement les coûts.
- Accent sur la 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 et les coûts opérationnels.
Quand choisir un déploiement de cluster
Vous pouvez utiliser le déploiement de cluster 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 de charges de travail Hadoop et Spark existantes : prend en charge la migration de clusters Hadoop ou Spark sur site vers Google Cloud. Répliquez les configurations existantes avec un minimum de modifications de code, en particulier lorsque vous utilisez des versions Spark plus anciennes.
- Personnalisation et contrôle poussés : vous permet de personnaliser les types de machines de cluster, la taille des disques et les configurations réseau. Ce niveau de contrôle est essentiel pour le réglage des performances et l'optimisation de l'utilisation des ressources pour les jobs complexes et de longue durée.
- Clusters persistants et de longue durée : prend en charge les jobs Spark continus et de longue durée, ainsi que 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 exécutant des outils de l'écosystème Hadoop, tels que Hive, Pig ou Presto, avec vos charges de travail Spark.
- Conformité en matière de sécurité : permet de contrôler l'infrastructure pour répondre à des normes de sécurité ou de conformité spécifiques, telles que la protection des informations permettant d'identifier personnellement l'utilisateur (PII) ou des données de santé protégées (PHI).
- Flexibilité de l'infrastructure : propose des VM Spot et la possibilité de réutiliser des réservations et la capacité de ressources Compute Engine pour équilibrer l'utilisation des ressources et faciliter votre stratégie d'infrastructure cloud.
Récapitulatif
Le choix d'un déploiement de cluster ou sans serveur Managed Service pour Apache Spark dépend des exigences de votre charge de travail, de vos préférences opérationnelles et du niveau de contrôle souhaité.
- Choisissez Managed Service 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 les coûts liés à la gestion de l'infrastructure.
- Choisissez les clusters Managed Service pour Apache Spark lorsque vous avez besoin d'un contrôle maximal, que vous devez migrer des charges de travail Hadoop ou Spark, ou que vous avez besoin d'un environnement de cluster partagé, personnalisé et persistant.
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 rentable pour exécuter Spark et exploiter tout le potentiel de vos données.