Managed Service pour Apache Spark inclut désormais les anciennes options de produit "Managed Service pour Apache Spark sur Compute Engine" (déploiement de cluster) et "Managed Service pour Apache Spark" (déploiement sans serveur).
Les déploiements sans serveur et de cluster fournissent tous deux 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. Toutefois, ils diffèrent dans la manière dont ils gèrent l'infrastructure sous-jacente et facturent les ressources. Examinez les fonctionnalités et cas d'utilisation suivants pour vous aider à choisir une solution Spark.
Comparer les déploiements Managed Service pour Apache Spark
Le tableau suivant présente les principales différences entre les déploiements de clusters et sans serveur de Managed Service pour Apache Spark.
| 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 | 50 s | 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 aux 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 décrit les principaux points forts de Managed Service pour Apache Spark et ses principaux cas d'utilisation pour vous aider à 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 de Managed Service pour Apache Spark diffèrent par le degré de contrôle, la gestion de l'infrastructure et le mode de facturation qu'ils proposent.
- 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 pour la durée d'exécution du job.
- Déploiement de cluster : propose des clusters Spark en tant que service, en exécutant Managed Spark sur votre infrastructure Compute Engine. Facturation basée sur la disponibilité du cluster.
En raison de ces différences, chaque déploiement de Managed Service pour Apache Spark est mieux adapté aux cas d'utilisation suivants :
| Déploiement | Cas d'utilisation |
|---|---|
| sans serveur | Différents environnements de jobs 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'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 des clusters. Vous provisionnez et gérez les clusters. |
| Contrôle et personnalisation | Contrôle réduit de l'infrastructure, l'accent étant mis sur l'envoi du code et la spécification des paramètres Spark. | 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. |
| 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 | Réduction des 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 permet d'obtenir des performances optimales. |
Frais généraux plus élevés nécessitant la gestion, le scaling et la maintenance des clusters. |
| Modèle d'efficacité | Aucun coût 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 pour une efficacité accrue. | Efficacité accrue grâce au partage de clusters entre les jobs et les équipes, avec un modèle mutualisé de partage. |
| Contrôle de la position | 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 | Facturation uniquement 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 d'autres coûts d'infrastructure. | Facturation basée sur la durée d'exécution du cluster, y compris le démarrage et l'arrêt, en fonction du nombre de nœuds. Comprend les frais de licence Managed Service pour Apache Spark et les coûts d'infrastructure. |
| Remises sur engagement d'utilisation | Les remises sur engagement d'utilisation basées sur les dépenses BigQuery s'appliquent aux jobs Managed Service pour Apache Spark. | Les remises sur engagement d'utilisation Compute Engine s'appliquent à l'ensemble de l'utilisation des ressources. |
| Contrôle des images et de l'environnement d'exécution | Les utilisateurs peuvent épingler des versions d'exécution mineures de Managed Service pour Apache Spark. Les versions inférieures sont gérées par Managed Service pour Apache Spark. | Les utilisateurs peuvent épingler des versions d'image mineures et sous-mineures de 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 | 17, 21 Java |
Versions précédentes compatibles |
| Temps de démarrage | 50 s | 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 s'agit donc d'un excellent choix 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 soucier de 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 éliminant la surcharge opérationnelle liée à la gestion des clusters.
- Charges de travail avec une demande sporadique ou imprévisible : pour les jobs Spark intermittents ou les jobs avec des besoins en ressources fluctuants, l'autoscaling sans serveur et la tarification à l'usage (les frais s'appliquent à la consommation de ressources des jobs) peuvent réduire considérablement les coûts.
- Accent mis 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 le déploiement de cluster
Vous pouvez utiliser le déploiement de clusters Managed Service pour Apache Spark pour 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 : permet de migrer des 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 d'anciennes versions de Spark.
- Personnalisation et contrôle approfondis : 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 jobs complexes de longue durée.
- Clusters persistants et de longue durée : accepte 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é de la 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 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.
Récapitulatif
Le choix entre un cluster Managed Service pour Apache Spark ou un déploiement sans serveur 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 éliminant les frais généraux 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 afin d'exploiter tout le potentiel de vos données.