Ce document présente les bonnes pratiques Dataproc qui peuvent vous aider exécuter des tâches de traitement de données fiables, efficaces et pertinentes Clusters Dataproc dans les environnements de production.
Spécifier des versions d'images de cluster
Dataproc utilise des versions d'image pour regrouper des systèmes d'exploitation, des composants de big data, et les connecteurs Google Cloud dans un package déployé sur un cluster. Si vous ne spécifiez pas de version d'image lorsque vous créez un cluster, Dataproc utilise par défaut la version stable la plus récente de l'image.
Pour les environnements de production, associez votre cluster à une version d'image Dataproc major.minor
spécifique, 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
en version de correction la plus récente (2.0
est résolu en 2.0.x
). Remarque : si vous devez vous appuyer sur une version de correction spécifique pour votre cluster, vous pouvez la spécifier : par exemple, --image-version=2.0.x
. Pour en savoir plus, consultez la section Fonctionnement de la gestion des versions.
Versions de l'image d'aperçu Dataproc
Les nouvelles versions mineures des images Dataproc sont disponibles dans une version preview
avant d'être publiées dans la version mineure standard. Utiliser une image d'aperçu
pour tester et valider vos jobs par rapport à une nouvelle version d'image mineure
avant d'adopter la version d'image mineure standard en production.
Consultez la page Gestion des versions Dataproc.
pour en savoir plus.
Utiliser des images personnalisées si nécessaire
Si vous avez des dépendances à ajouter au cluster, telles que des bibliothèques Python, un logiciel de renforcement de la sécurité ou une protection antivirus, Créez une image personnalisée à partir de la dernière image. dans le suivi de la 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 les exigences de mise à jour des dépendances, utilisez la dernière version de l'image de correction disponible dans la piste de l'image mineure.
Envoyer des jobs au service Dataproc
Envoyez des tâches au service Dataproc avec un appel jobs.submit à l'aide de la CLI gcloud ou de la console Google Cloud. Définissez les autorisations de tâche et de cluster en accordant des rôles Dataproc. Utilisez des rôles personnalisés pour séparer l'accès au cluster des autorisations d'envoi de jobs.
Avantages de l'envoi de tâches au service Dataproc :
- Aucun paramètre de réseau complexe n'est requis : l'API est facilement accessible.
- Gérer facilement les autorisations et les rôles IAM
- Suivez facilement l'état des tâches : pas de métadonnées de tâches Dataproc pour compliquer les résultats.
En production, exécutez des tâches qui ne dépendent que de dépendances au niveau du cluster à une version d'image mineure fixe (par exemple, --image-version=2.0
). Regroupez les dépendances avec les tâches lorsqu'elles sont envoyées. Pour ce faire, il est courant d'envoyer un uber jar à Spark ou MapReduce.
- Exemple : Si un fichier JAR de tâche dépend de
args4j
et despark-sql
, avecargs4j
spécifique à la tâche etspark-sql
une dépendance au niveau du cluster, regroupezargs4j
dans le fichier JAR uber de la tâche.
Contrôler les emplacements des actions d'initialisation
Actions d'initialisation vous permettent d'exécuter automatiquement des scripts ou d'installer lors de la création d'un cluster Dataproc (consultez dataproc-initialization-actions dépôt GitHub pour les actions d'initialisation courantes de Dataproc). Lorsque vous utilisez des actions d'initialisation de cluster dans un environnement de production, copiez les scripts d'initialisation dans Cloud Storage plutôt que de les extraire 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.
Surveiller les notes de version de Dataproc
Dataproc publie régulièrement de nouvelles versions de correction des images. Consulter les notes de version de Dataproc ou s'y abonner connaître les dernières versions de l'image Dataproc et les autres des annonces, des modifications et des correctifs.
Afficher le bucket de préproduction pour examiner les échecs
Examinez l'état bucket de préproduction pour examiner les messages d'erreur des clusters et des jobs. En règle générale, l'emplacement Cloud Storage du bucket de préproduction est indiqué messages d'erreur, comme indiqué en gras dans l'exemple d'erreur suivant message:
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éproduction:
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 professionnels à travers plusieurs niveaux d'assistance. Par ailleurs, Google Cloud Les services de conseil peuvent vous conseiller sur les bonnes pratiques pour les déploiements de production de votre équipe.
Pour en savoir plus
Consultez le guide des bonnes pratiques Dataproc (en anglais) sur le blog Google Cloud.
Regardez Démocratiser Dataproc sur YouTube.