Buckets temporaires et de préproduction Managed Service pour Apache Spark

Lorsque vous créez un cluster, HDFS est utilisé comme système de fichiers par défaut. Vous pouvez remplacer ce comportement en définissant defaultFS comme bucket Cloud Storage. Par défaut, Managed Service pour Apache Spark crée également un bucket de préproduction Cloud Storage et un bucket temporaire Cloud Storage dans votre projet, ou réutilise un bucket de préproduction et un bucket temporaire existants créés par Managed Service pour Apache Spark 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. Il reçoit également les résultats de la collecte de données de diagnostic d'instantané .

  • 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. Il stocke également les données de diagnostic de point de contrôle collectées pendant le cycle de vie d'un cluster.

Si vous ne spécifiez pas de bucket de préproduction ou temporaire lorsque vous créez un cluster, Managed Service pour Apache Spark 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 Managed Service pour Apache Spark sont partagés par les clusters de la même région et sont créés avec une durée de conservation de suppression réversible Cloud Storage définie sur 0 seconde. Si vous spécifiez vos propres buckets de préproduction et temporaires, envisagez d'ajuster la conservation de suppression réversible afin de réduire les frais de stockage engendrés par les objets supprimés de manière réversible.

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, n'a pas de valeur 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 Managed Service pour Apache Spark utilisera comme bucket de préproduction et comme bucket temporaire pour votre cluster.

Google Cloud Console

Pour spécifier ou sélectionner le bucket de préproduction du cluster :

  1. Ouvrez la page Créer un cluster.
  2. Cliquez sur Configuration supplémentaire pour développer cette section.
  3. Modifiez Personnalisation et autres.
  4. Dans le panneau qui s'ouvre, dans la section Bucket de préproduction Cloud Storage, spécifiez un bucket.

Remarque : Il n'est pas possible de spécifier un bucket temporaire à l'aide de la Google Cloud console n'est pas pris en charge.

gcloud CLI

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 --bucket et/ou --temp-bucket options 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 ClusterConfig.configBucket et ClusterConfig.tempBucket champs dans une requête clusters.create pour spécifier les buckets de préproduction et temporaires de votre cluster.

Managed Service pour Apache Spark utilise une structure de dossiers définie pour les buckets Cloud Storage associés à des clusters. Il est également possible d'associer plusieurs clusters à un bucket. La structure de dossiers utilisée pour enregistrer les résultats 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 la console pour répertorier le nom du bucket de préproduction et le nom du bucket temporaire d'un cluster.

Google Cloud Console

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

gcloud CLI

Exécutez la gcloud dataproc clusters describe commande 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 ...