Pour les clients Google Cloud qui s'appuient sur Apache Spark pour exécuter leurs charges de travail de traitement et d'analyse des données, une décision clé consiste à choisir entre Dataproc sur Compute Engine (appelé "Dataproc" dans ce document) et Serverless pour Apache Spark. Bien que les deux services offrent un environnement Spark géré, hautement évolutif, prêt pour la production et sécurisé, compatible avec les logiciels Open Source et prenant entièrement en charge les formats de données, ces deux plates-formes diffèrent fondamentalement dans la façon dont l'infrastructure sous-jacente est gérée et facturée.
Ce document compare Google Cloud Serverless pour Apache Spark à Dataproc et liste leurs fonctionnalités pour vous aider à choisir la meilleure solution pour les charges de travail Spark.
Comparer Serverless pour Apache Spark à Dataproc
Si vous souhaitez provisionner et gérer l'infrastructure, puis exécuter des charges de travail sur Spark et d'autres frameworks de traitement Open Source, utilisez Dataproc sur Compute Engine. Le tableau suivant répertorie les principales différences entre Dataproc sur Compute Engine et Serverless pour Apache Spark.
| Capacité | Sans serveur pour Apache Spark | Dataproc sur Compute Engine |
|---|---|---|
| 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 antérieures |
Choisir le meilleur service Spark
Cette section décrit les principaux avantages et les principaux cas d'utilisation de chaque service pour vous aider à choisir celui qui convient le mieux à vos charges de travail Spark.
Présentation
Dataproc et Serverless pour Apache Spark diffèrent en termes de degré de contrôle, de gestion de l'infrastructure et de mode de facturation.
- Spark géré par Dataproc : Dataproc propose des clusters Spark en tant que service, qui exécutent Spark géré sur votre infrastructure Compute Engine. Vous payez pour le temps d'activité du cluster.
- Serverless pour Apache Spark : ce service 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.
En raison de ces différences, chaque service est le mieux adapté aux cas d'utilisation suivants :
| Service | Cas d'utilisation |
|---|---|
| Dataproc | Environnements partagés de longue durée Charges de travail nécessitant un contrôle précis de l'infrastructure Migration d'anciens environnements Hadoop et Spark |
| Sans serveur pour Apache Spark | 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 |
Différences majeures
| Fonctionnalité | Dataproc | Sans serveur pour Apache Spark |
|---|---|---|
| Modèle de gestion | Basé sur des clusters. Vous provisionnez et gérez les clusters. | Environnement d'exécution sans serveur entièrement géré. |
| Contrôle et personnalisation | Un contrôle accru sur la configuration du cluster, les types de machines et les logiciels. Possibilité d'utiliser des VM Spot, et de réutiliser les réservations et la capacité des ressources Compute Engine. Convient aux charges de travail qui dépendent de formes de VM spécifiques, telles que les architectures de processeur. | Moins de contrôle sur l'infrastructure, avec un accent mis sur l'envoi de code et la spécification des paramètres Spark. |
| Cas d'utilisation | 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 approfondie. | Requêtes ad hoc, analyses interactives, nouveaux pipelines Spark et charges de travail avec des besoins en ressources imprévisibles. |
| Coûts opérationnels | Surcharge plus élevée nécessitant la gestion, le scaling et la maintenance des clusters. | Réduction des frais généraux. Google Cloud gère l'infrastructure, le scaling et le provisionnement, ce qui permet d'obtenir un modèle NoOps. Gemini Cloud Assist facilite le dépannage, tandis que le réglage automatique de Serverless pour Apache Spark contribue à optimiser les performances. |
| Modèle d'efficacité | L'efficacité est améliorée grâce au partage de clusters entre les tâches et les équipes, avec un modèle mutualisé. | 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. Les sessions interactives partagées sont prises en charge pour améliorer l'efficacité. |
| Paramètres géographiques | Les clusters sont zonaux. La zone peut être sélectionnée automatiquement lors de la création du cluster. | Serverless 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é. |
| Coût | 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 Dataproc et les coûts d'infrastructure. | 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. |
| Remises sur engagement d'utilisation (CUD) | Les remises sur engagement d'utilisation Compute Engine s'appliquent à toute utilisation des ressources. | Les remises pour utilisation soutenue basées sur les dépenses BigQuery s'appliquent aux jobs Serverless pour Apache Spark. |
| Contrôle de l'image et de l'exécution | Les utilisateurs peuvent épingler les versions mineures et sous-mineures des images Dataproc. | Les utilisateurs peuvent épingler des versions d'exécution mineures de Serverless pour Apache Spark. Les versions mineures secondaires sont gérées par Serverless pour Apache Spark. |
| Gestion des ressources | YARN | Sans serveur |
| Compatibilité avec les GPU | Oui | Oui |
| Sessions interactives | Non | Oui |
| Conteneurs personnalisés | Non | Oui |
| Accès aux VM (SSH) | Oui | Non |
| Versions Java | Versions précédentes compatibles | Java 17, 21 |
| Temps de démarrage | 120 s | 50s |
Quand choisir Dataproc ?
Dataproc est un service géré que vous pouvez utiliser pour exécuter Apache Spark et d'autres frameworks de traitement de données Open Source. Elle 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 avancés : vous permet de 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 tâches complexes et 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.
Quand choisir Serverless pour Apache Spark
Serverless 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, Serverless 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 jobs Spark intermittents ou ceux dont les besoins en ressources fluctuent, l'autoscaling et la tarification au paiement à l'utilisation (les frais s'appliquent à la consommation de ressources des jobs) de Serverless pour Apache Spark peuvent réduire considérablement les coûts.
- Productivité des développeurs : en éliminant la nécessité de provisionner et de gérer des clusters, Serverless 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 Serverless pour Apache Spark réduit les charges et les coûts opérationnels.
En résumé
Le choix entre Dataproc et Serverless pour Apache Spark 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 Dataproc 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é.
- Choisissez Serverless pour Apache Spark 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.
Après avoir évalué les facteurs listés dans cette section, sélectionnez le service le plus efficace et le plus économique pour exécuter Spark et exploiter tout le potentiel de vos données.