Ce document présente les bonnes pratiques de Managed Service pour Apache Spark qui peuvent vous aider à exécuter des tâches de traitement de données fiables, efficaces et pertinentes sur des clusters Managed Service pour Apache Spark dans des environnements de production.
Spécifier les versions d'image du cluster
Managed Service pour Apache Spark utilise des versions d'image pour regrouper le système d'exploitation, les composants big data, et Google Cloud les connecteurs dans un package déployé sur un cluster. Si vous ne spécifiez pas de version d'image lors de la création d'un cluster, Managed Service pour Apache Spark utilise par défaut la version d'image stable la plus récente.
Pour les environnements de production, associez votre cluster à une version d'image major.minor spécifique de Managed Service pour Apache Spark, comme indiqué dans la commande gcloud CLI suivante.
gcloud dataproc clusters create CLUSTER_NAME \ --region=region \ --image-version=2.0
Dataproc résout la version major.minor dans la dernière version mineure
(2.0 est résolu en 2.0.x). Remarque : Si vous devez vous appuyer sur une version mineure spécifique pour votre cluster,
vous pouvez la spécifier : par exemple, --image-version=2.0.x. Pour en savoir plus, consultez
Fonctionnement du contrôle des versions pour
plus d'informations.
Versions d'image en preview de Managed Service pour Apache Spark
Les nouvelles versions mineures des images Managed Service pour Apache Spark sont disponibles en version preview avant d'être publiées dans la version d'image mineure standard. Utilisez une image en preview pour tester et valider vos tâches par rapport à une nouvelle version d'image mineure avant d'adopter la version d'image mineure standard en production.
Pour en savoir plus, consultez Contrôle des versions de Managed Service pour Apache Spark.
Utiliser des images personnalisées si nécessaire
Si vous devez ajouter des dépendances au cluster, telles que des bibliothèques Python natives, ou des logiciels de renforcement de la sécurité ou de protection contre les virus, créez une image personnalisée à partir de la dernière image de votre version d'image mineure cible. Cette pratique vous permet de répondre aux exigences de dépendance lorsque vous créez des clusters à l'aide de votre image personnalisée. Lorsque vous recréez votre image personnalisée pour mettre à jour les exigences de dépendance, utilisez la dernière version d'image mineure disponible dans la version d'image mineure.
Envoyer des tâches à Managed Service pour Apache Spark
Envoyez des tâches au service Managed Service pour Apache Spark avec un jobs.submit à l'aide de la gcloud CLI ou de la Google Cloud console. Définissez les autorisations de tâche et de cluster en attribuant des rôles Managed Service pour Apache Spark. Utilisez des rôles personnalisés pour séparer l'accès au cluster des autorisations d'envoi de tâches.
Avantages de l'envoi de tâches à Managed Service pour Apache Spark :
- Aucun paramètre réseau complexe n'est requis : l'API est largement accessible.
- Gestion facile des autorisations et des rôles IAM
- Suivi facile de l'état des tâches : aucune métadonnée de tâche Managed Service pour Apache Spark ne complique les résultats.
En production, exécutez des tâches qui ne dépendent que des dépendances au niveau du cluster dans une version d'image mineure fixe (par exemple, --image-version=2.0). Regroupez les dépendances avec les tâches lors de leur envoi. L'envoi
d'un uber jar à
Spark ou MapReduce est une méthode courante pour ce faire.
- Exemple : Si un fichier JAR de tâche dépend de
args4jetspark-sql, avecargs4jspécifique à la tâche etspark-sqlune dépendance au niveau du cluster, regroupezargs4jdans l'uber jar de la tâche.
Contrôler les emplacements des actions d'initialisation
Les actions d'initialisation vous permettent d'exécuter automatiquement des scripts ou d'installer des composants lorsque vous créez un cluster Managed Service pour Apache Spark (consultez le dépôt GitHub dataproc-initialization-actions pour connaître les actions d'initialisation courantes de Managed Service pour Apache Spark). Lorsque vous utilisez des actions d'initialisation de cluster dans un environnement de production, copiez les scripts d'initialisation dans Cloud Storage au lieu de les récupérer à partir d'un dépôt public. Cette pratique évite d'exécuter des scripts d'initialisation susceptibles d'être modifiés par d'autres personnes.
Consulter les notes de version de Managed Service pour Apache Spark
Managed Service pour Apache Spark publie régulièrement de nouvelles versions d'image mineures. Consultez ou abonnez-vous aux notes de version de Managed Service pour Apache Spark pour être informé des dernières versions d'image de Managed Service pour Apache Spark et d'autres annonces, modifications et correctifs.
Afficher le bucket de préparation pour examiner les échecs
Consultez le bucket de préparation de votre cluster pour examiner les messages d'erreur du cluster et des tâches. En règle générale, l'emplacement Cloud Storage du bucket de préparation est indiqué dans les messages d'erreur, comme illustré en gras dans l'exemple de message d'erreur suivant :
ERROR: (gcloud.dataproc.clusters.create) Operation ... failed: ... - Initialization action failed. Failed action ... see output in: gs://dataproc-<BUCKETID>-us-central1/google-cloud-dataproc-metainfo/CLUSTERID/<CLUSTER_ID>\dataproc-initialization-script-0_output
Utilisez la gcloud CLI pour afficher le contenu du bucket de préparation :
Exemple de résultat :gcloud storage cat gs://STAGING_BUCKET
+ readonly RANGER_VERSION=1.2.0 ... Ranger admin password not set. Please use metadata flag - default-password
Obtenir de l'aide
Google Cloud prend en charge vos charges de travail OSS de production et vous aide à respecter vos contrats de niveau de service grâce à différents niveaux d'assistance. De plus, Google Cloud les services de conseil peuvent vous fournir des conseils sur les bonnes pratiques pour les déploiements de production de votre équipe.
Pour en savoir plus
Consultez le Google Cloud blog guide des bonnes pratiques de Managed Service pour Apache Spark.
Regardez la vidéo Democratizing Managed Service for Apache Spark sur YouTube.