Cette page contient les questions fréquentes sur Dataproc sans serveur, ainsi que leurs réponses.
Quand dois-je utiliser Dataproc sans serveur pour Spark plutôt que Dataproc sur Compute Engine ?
Dataproc sans serveur:
- Compatible avec les charges de travail par lot Spark et les sessions interactives dans les notebooks Jupyter du noyau PySpark.
- Dataproc sans serveur crée et gère votre charge de travail et votre infrastructure de session interactive.
Dataproc sur Compute Engine:
Accepte la soumission de différents types de tâches Spark et de tâches basées sur d'autres composants Open Source, tels que Flink, Hadoop, Hive, Pig, Presto, etc.
Ne crée ni ne gère l'infrastructure. Vous créez et gérez vos clusters Dataproc.
Que puis-je faire avec Dataproc sans serveur pour Spark ?
Exécuter des jobs de streaming à l'aide des bibliothèques de streaming Spark Remarque: Le streaming n'est pas un service géré. Vous devez donc gérer les points de contrôle et les redémarrages.
Entraîner des modèles à l'aide de Spark MLlib
Utilisez les notebooks SQL interactifs pour l'exploration de données, les graphiques, les séries temporelles et les analyses géospatiales.
Orchestrez Dataproc sans serveur pour les charges de travail Spark avec Cloud Composer, un service Apache Airflow géré.
Comment configurer un plan d'exécution de charge de travail ?
Vous pouvez exécuter des charges de travail simultanément ou de manière séquentielle. Votre plan d'exécution a une incidence sur votre quota de ressources Google Cloud. Vous pouvez exécuter autant de charges de travail en parallèle que vos quotas de ressources par lot le permettent.
Puis-je utiliser une image personnalisée avec Dataproc sans serveur pour Spark ?
- Oui. Vous pouvez utiliser une image de conteneur personnalisé à la place de l'image de conteneur par défaut. Consultez la page Utiliser des conteneurs personnalisés avec Dataproc sans serveur pour Spark.
Puis-je spécifier des ressources de mémoire et de disque pour les charges de travail Spark sans serveur Dataproc ?
Oui. Vous pouvez spécifier les niveaux de calcul et de disque pour les exécuteurs et les pilotes premium, ainsi que la quantité de ressources de calcul et de disque pour les exécuteurs et les exécuteurs à allouer lorsque vous envoyez une charge de travail (consultez la section Propriétés d'allocation des ressources).
Comment spécifier la plage d'adresses IP de mon réseau VPC Dataproc sans serveur ?
Les charges de travail Dataproc sans serveur pour Spark s'exécutent dans votre environnement.
Chaque pilote Spark et exécuteur Spark d'une charge de travail Spark sans serveur consomment une adresse IP interne dans votre réseau VPC Dataproc sans serveur.
/16
est une plage d'adresses CIDR standard spécifiée par l'utilisateur pour un réseau VPC Dataproc sans serveur.
Vous pouvez limiter la plage d'adresses IP de votre réseau en fonction du nombre de charges de travail simultanées que vous prévoyez d'exécuter.
Dataproc sans serveur est-il compatible avec la résidence des données ?
Oui. Vous spécifiez la région dans laquelle votre charge de travail est traitée. Localisez vos ensembles de données d'entrée et de sortie dans la région spécifiée.
Comment Dataproc sans serveur sélectionne-t-il une zone de la région spécifiée pour exécuter la charge de travail ?
Dataproc sans serveur sélectionne la zone Compute Engine dans laquelle il exécute une charge de travail en fonction de la capacité et de la disponibilité. Si une zone devient indisponible après le démarrage d'une charge de travail, celle-ci échoue. Vous devez alors renvoyer la charge de travail ayant échoué.
Comment les charges de travail Dataproc sans serveur utilisent-elles les ressources de calcul ?
Chaque charge de travail s'exécute sur ses propres ressources de calcul. L'envoi de plusieurs lots ne permet pas de partager ni de réutiliser les ressources de calcul.
Bonnes pratiques :
Optimisez votre charge de travail pour les jobs à exécution moyenne, et non pour les jobs de courte durée.
Conservez les données auxquelles plusieurs charges de travail accèdent dans Cloud Storage.
Où puis-je trouver des informations sur les annonces, fonctionnalités, corrections de bugs, problèmes connus et abandons de Dataproc sans serveur ?
Consultez les notes de version de Dataproc sans serveur.
Les charges de travail simultanées sont-elles en concurrence pour les ressources ?
Les charges de travail Dataproc sans serveur n'entrent en concurrence pour les ressources que si votre quota de ressources est insuffisant pour exécuter toutes les charges de travail exécutées simultanément. Sinon, les charges de travail sont entièrement isolées les unes des autres.
Comment le quota Dataproc sans serveur est-il alloué ?
Les lots Dataproc sans serveur consomment des ressources Google Cloud. Pour en savoir plus, consultez la page Quotas sans serveur de Dataproc.
Dois-je configurer un serveur d'historique persistant Dataproc ?
La configuration d'un serveur d'historique persistant (PHS) à utiliser avec Dataproc sans serveur est facultative.Vous pouvez l'utiliser pour afficher les événements Spark et d'autres journaux dans un bucket Cloud Storage spécifié jusqu'à la période standard de conservation TTL (stockage sans serveur) et bucket temporaire Dataproc standard.
Quels sont les journaux Spark sans serveur Dataproc disponibles ?
Les exécuteurs et les journaux de pilotes Spark sont disponibles dans Cloud Logging pendant et après l'exécution de la charge de travail Spark. En outre, les applications Spark sont visibles dans l'interface Web Persistent History Server (PHS) pendant l'exécution de la charge de travail (sélectionnez PHS > Integer Applications dans l'interface utilisateur de PHS).
Si vous configurez une PHS Dataproc, elle fournit un accès persistant aux journaux d'événements Spark enregistrés dans Cloud Storage, qui fournissent des informations sur l'exécution de l'application Spark, telles que les événements du DAG et de l'exécuteur.
Puis-je définir le nombre d'exécuteurs pour ma charge de travail Spark ?
Oui. Vous pouvez définir le nombre d'exécuteurs pour une charge de travail Spark à l'aide de la propriété spark.executor.instances
. Toutefois, le nombre total de cœurs qu'une charge de travail peut utiliser est plus important que le nombre d'exécuteurs, car Spark exécute une tâche par cœur. Par exemple, si une charge de travail comporte quatre exécuteurs avec deux cœurs chacun, elle exécutera des tâches 4 * 2 = 8
en même temps. Il exécutera également le même nombre de tâches pour une charge de travail comportant deux exécuteurs avec quatre cœurs chacun. Étant donné que le nombre de cœurs pour chaque charge de travail est identique, elles exécuteront le même nombre de tâches. Vous pouvez utiliser la propriété spark.executor.cores
pour définir le nombre de cœurs par exécuteur pour votre charge de travail Dataproc sans serveur.
Quelles métriques Spark sont utilisées par Dataproc sans serveur pour l'autoscaling ?
Dataproc sans serveur pour Spark examine les métriques d'allocation dynamique maximum-needed
et running
de Spark pour déterminer si le scaling doit être effectué à la hausse ou à la baisse.
Consultez la page Dataproc sans serveur pour l'autoscaling Spark.
Puis-je configurer le comportement d'autoscaling de Dataproc sans serveur à l'aide des propriétés Spark ?
Oui. L'autoscaling sans serveur de Dataproc est basé sur l'allocation dynamique Spark et est activé par défaut. Vous pouvez ajuster les propriétés Spark et les propriétés d'allocation dynamique Spark suivantes:
spark.executor.instances
spark.dynamicAllocation.initialExecutors
spark.dynamicAllocation.minExecutors
spark.dynamicAllocation.maxExecutors
Pourquoi dois-je empaqueter mon code dans un fichier JAR pour envoyer ma charge de travail Spark ?
Spark est écrit en Scala, ce qui signifie que les processus du pilote et des nœuds de calcul fonctionnent comme des processus JVM. Dans les langages JVM, le fichier JAR est le principal moyen d'empaqueter du code. Vous transmettez le fichier JAR à Dataproc sans serveur lorsque vous envoyez une charge de travail.