Bucket de préproduction et bucket temporaire Dataproc

Lorsque vous créez un cluster, HDFS est utilisé comme système de fichiers par défaut. Vous pouvez ignorer ce comportement en définissant defaultFS comme bucket Cloud Storage. Par défaut, Dataproc crée également un bucket de préproduction Cloud Storage et un bucket temporaire Cloud Storage dans votre projet, ou réutilise des buckets de préproduction et temporaires existants créés par Dataproc lors de requêtes de création de cluster précédentes.

  • Bucket de préproduction : il permet de préparer les dépendances des tâches du cluster, le résultats du pilote de tâches et les fichiers de configuration du cluster. Le bucket de préproduction reçoit également les résultats de la commande gcloud dataproc clusters diagnose de gcloud CLI.

  • Bucket temporaire : il permet de stocker des données éphémères associées au cluster et aux tâches, telles que les fichiers d'historique Spark et MapReduce.

Si vous ne spécifiez pas de bucket de préproduction ou temporaire lorsque vous créez un cluster, Dataproc définit un emplacement Cloud Storage aux États-Unis, en Asie ou dans l'UE pour les buckets de préproduction et temporaires de votre cluster, selon la zone Compute Engine de déploiement de votre cluster, puis crée et gère ces buckets par emplacement au niveau du projet. Les buckets de préproduction et temporaires créés par Dataproc sont partagés entre les clusters d'une même région et sont créés avec une durée de suppression réversible Cloud Storage définie sur 0 seconde.

Le bucket temporaire contient des données éphémères et a une valeur TTL de 90 jours. Le bucket de préproduction, qui peut contenir des données de configuration et des fichiers de dépendances nécessaires à plusieurs clusters, ne possède pas de TTL. Toutefois, vous pouvez appliquer une règle de cycle de vie à vos fichiers de dépendances (fichiers avec une extension de nom de fichier ".jar" situés dans le dossier du bucket de préproduction) pour planifier la suppression de vos fichiers de dépendances lorsqu'ils ne sont plus nécessaires à vos clusters.

Créer vos propres buckets de préproduction et temporaires

Au lieu de compter sur la création d'un bucket de préproduction et d'un bucket temporaire par défaut, vous pouvez spécifier deux buckets Cloud Storage existants que Dataproc utilisera comme bucket de préproduction et comme bucket temporaire pour votre cluster.

Commande gcloud

Pour spécifier le bucket de préproduction et/ou le bucket temporaire de votre cluster, exécutez la commande gcloud dataproc clusters create avec les options --bucket et/ou --temp-bucket en local dans une fenêtre de terminal ou dans Cloud Shell.

gcloud dataproc clusters create cluster-name \
    --region=region \
    --bucket=bucket-name \
    --temp-bucket=bucket-name \
    other args ...

API REST

Pour spécifier le bucket de préproduction et le bucket temporaire du cluster, utilisez les champs ClusterConfig.configBucket et ClusterConfig.tempBucket dans la requête clusters.create.

Console

Dans la console Google Cloud, ouvrez la page Dataproc Créer un cluster. Sélectionnez le panneau "Personnaliser le cluster", puis utilisez le champ "Stockage de fichiers" pour spécifier ou sélectionner le bucket de préproduction du cluster.

Remarque: Pour le moment, il n'est pas possible de spécifier le bucket temporaire à l'aide de la console Google Cloud.

Dataproc utilise une structure de dossiers définie pour les buckets Cloud Storage associés à des clusters. Dataproc permet également d'associer plusieurs clusters à un bucket Cloud Storage. La structure de dossiers utilisée pour enregistrer le résultat du pilote de tâches dans Cloud Storage est la suivante :

cloud-storage-bucket-name
  - google-cloud-dataproc-metainfo
    - list of cluster IDs
        - list of job IDs
          - list of output logs for a job

Vous pouvez utiliser l'outil de ligne de commande gcloud, l'API Dataproc ou Google Cloud Console pour répertorier le nom du bucket de préproduction et le nom du bucket temporaire d'un cluster.

Console

  • Affichez les détails du cluster, y compris le nom du bucket de préproduction du cluster, sur la page Dataproc Clusters (Clusters) de la console Google Cloud.
  • Sur la page Navigateur Cloud Storage de la console Google Cloud, filtrez les résultats contenant "dataproc-temp-".

Commande gcloud

Exécutez la commande gcloud dataproc clusters describe en local dans une fenêtre de terminal ou dans Cloud Shell. Le bucket de préproduction et le bucket temporaire associés à votre cluster sont répertoriés dans les résultats.

gcloud dataproc clusters describe cluster-name \
    --region=region \
...
clusterName: cluster-name
clusterUuid: daa40b3f-5ff5-4e89-9bf1-bcbfec ...
config:
    configBucket: dataproc-...
    ...
    tempBucket: dataproc-temp...

API REST

Appelez clusters.get pour répertorier les détails du cluster, y compris le nom de son bucket de préproduction et le nom de son bucket temporaire.

{
 "projectId": "vigilant-sunup-163401",
 "clusterName": "cluster-name",
 "config": {
  "configBucket": "dataproc-...",
...
  "tempBucket": "dataproc-temp-...",
}

defaultFS

Vous pouvez définir core:fs.defaultFS sur un emplacement de bucket dans Cloud Storage (gs://defaultFS-bucket-name) pour définir Cloud Storage comme le système de fichiers par défaut. Cela définit également core:fs.gs.reported.permissions, l'autorisation signalée renvoyée par le connecteur Cloud Storage pour tous les fichiers, à 777.

Si Cloud Storage n'est pas défini comme système de fichiers par défaut, HDFS est utilisé, et la propriété core:fs.gs.reported.permissions renvoie 700, la valeur par défaut.

gcloud dataproc clusters create cluster-name \
    --properties=core:fs.defaultFS=gs://defaultFS-bucket-name \
    --region=region \
    --bucket=staging-bucket-name \
    --temp-bucket=temp-bucket-name \
    other args ...