Bonnes pratiques Dataproc pour la production

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 les versions de l'image du 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 à un cluster major.minor version de l'image Dataproc, en tant que comme indiqué dans la commande suivante de la gcloud CLI.

gcloud dataproc clusters create CLUSTER_NAME \
    --region=region \
    --image-version=2.0

Dataproc associe la version de major.minor à la dernière version de correction (2.0 est résolu en 2.0.x). Remarque: Si vous devez utiliser une version de correction spécifique pour votre cluster, vous pouvez le spécifier: par exemple, --image-version=2.0.x. Voir Fonctionnement de la gestion des versions pour plus d'informations.

Versions de l'image d'aperçu Dataproc

Nouvelles versions mineures de Dataproc images sont disponibles dans une version preview avant leur publication pour les images mineures standards. 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 jobs au service Dataproc à l'aide d'une jobs.submit à l'aide de la méthode gcloud CLI ou la console Google Cloud. Définissez des autorisations pour le job et le cluster en accordant 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.
  • Autorisations et rôles IAM faciles à gérer
  • Suivez facilement l'état des jobs : aucune métadonnée de job Dataproc pour compliquer les résultats.

En production, exécuter des jobs qui ne dépendent que des paramètres au niveau du cluster dépendances au niveau d'une version d'image mineure corrigée (par exemple, --image-version=2.0). Lot les dépendances avec les jobs lors de l'envoi des jobs. Envoi... un uber jar Pour ce faire, il est courant d'utiliser Spark ou MapReduce.

  • Exemple: Si un fichier JAR de job dépend de args4j et de spark-sql, avec args4j spécifique au job et spark-sql (dépendance au niveau du cluster), regroupez args4j dans l'uber jar du job.

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). Lors de l'utilisation d'actions d'initialisation de cluster dans un environnement de production copier des scripts d'initialisation dans Cloud Storage plutôt que de les approvisionner dans un référentiel public. Cette pratique évite d'exécuter qui sont susceptibles d'être modifiés par d'autres utilisateurs.

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

  1. 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
     

  2. Utilisez la gcloud CLI pour afficher le contenu du bucket de préproduction:

    gcloud storage cat gs://STAGING_BUCKET
    
    Exemple de résultat:
    + 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