Données stockées dans Cloud Storage

Cloud Composer 1 | Cloud Composer 2

Cette page décrit les données que Cloud Composer stocke pour votre environnement dans Cloud Storage.

Lorsque vous créez un environnement, Cloud Composer crée un bucket Cloud Storage et l'associe à votre environnement. Le nom du bucket est basé sur la région, le nom et un ID aléatoire de l'environnement, par exemple us-central1-b1-6efannnn-bucket.

Cloud Composer attend le code source pour vos workflows (DAG) et leurs dépendances dans des dossiers spécifiques de Cloud Storage et utilise Cloud Storage FUSE pour mapper les dossiers aux composants Airflow dans votre environnement Cloud Composer.

Dossiers dans le bucket Cloud Storage

Dossier Chemin d'accès au stockage Répertoire mappé Description
DAG gs://bucket-name/dags /home/airflow/gcs/dags Stocke les DAG pour votre environnement. Seuls les DAG de ce dossier sont planifiés pour votre environnement.
Plug-ins gs://bucket-name/plugins /home/airflow/gcs/plugins Stocke vos plug-ins personnalisés, tels que des opérateurs Airflow, des hooks, des capteurs ou des interfaces en interne et personnalisés.
Données gs://bucket-name/data /home/airflow/gcs/data Stocke les données créées et utilisées par les tâches. Ce dossier est installé sur tous les nœuds de calcul.
Journaux gs://bucket-name/logs Stocke les journaux Airflow pour les tâches. Les journaux sont également disponibles dans l'interface Web Airflow et dans l'onglet "Journaux" de l'interface utilisateur de Cloud Composer.

Remarques relatives à la capacité

Les données des dossiers dags/, plugins/ et data/ sont synchronisées avec les planificateurs et les nœuds de calcul Airflow.

  • Dans Airflow 2, le contenu du dossier plugins/ est également synchronisé avec le serveur Web Airflow.

  • Dans Airflow 1, les dossiers de contenu dags/ et plugins/ ne sont synchronisés avec le serveur Web Airflow que si la sérialisation des DAG est désactivée. Sinon, la synchronisation n'est pas effectuée.

Plus il y a de données dans ces dossiers, plus l'espace est occupé dans le stockage local des composants Airflow. Enregistrer trop de données dans dags/ et plugins/ peut perturber vos opérations et entraîner des problèmes tels que:

  • un nœud de calcul ou un programmeur manque de stockage local et est évincé en raison d'un espace insuffisant sur le disque local du composant.

  • La synchronisation des fichiers des dossiers dags/ et plugins/ avec les nœuds de calcul et les planificateurs prend beaucoup de temps.

  • La synchronisation des fichiers des dossiers dags/ et plugins/ avec les nœuds de calcul et les programmeurs devient impossible. Par exemple, vous stockez un fichier de 2 Go dans le dossier dags/, mais le disque local de votre composant ne peut accueillir que 1 Go. Lors de la synchronisation, votre composant manque d'espace de stockage local, et la synchronisation ne peut pas s'effectuer.

DAG et plug-ins

Pour éviter les échecs de workflow, stockez vos DAG, plug-ins et modules Python dans les dossiers dags/ ou plugins/, même si vos modules Python ne contiennent aucun DAG ni plug-in.

Par exemple, vous pouvez utiliser un DataFlowPythonOperator qui fait référence à un pipeline Dataflow py_file. Ce fichier py_file ne contient pas de DAG ni de plug-ins, mais vous devez tout de même le stocker dans le dossier dags/ ou plugins/.

Données

Dans certains cas, certains fichiers du dossier data/ sont synchronisés avec un composant Airflow spécifique. Par exemple, lorsque Cloud Composer tente de lire un fichier donné pour la première fois pendant:

  • Analyse du DAG Lorsqu'un fichier est lu pour la première fois lors de l'analyse du DAG, Cloud Composer le synchronise avec le programmeur qui analyse le DAG.

  • Exécution du DAG Lorsqu'un fichier est lu pour la première fois lors de l'exécution du DAG, Cloud Composer le synchronise avec le nœud de calcul exécutant l'exécution.

Les composants Airflow disposent d'un espace de stockage local limité. Pensez donc à supprimer les fichiers téléchargés pour libérer de l'espace disque dans vos composants. Notez que l'utilisation de l'espace de stockage local peut également augmenter temporairement si vous avez des tâches simultanées qui téléchargent le même fichier sur un seul nœud de calcul Airflow.

Journaux

Le dossier logs/ est synchronisé à partir des nœuds de calcul Airflow vers le bucket à l'aide de l'API Cloud Storage.

Le quota de l'API Cloud Storage est calculé en fonction de la quantité de données déplacées. Ainsi, le nombre de tâches Airflow exécutées par votre système peut augmenter l'utilisation de l'API Cloud Storage: plus vous exécutez de tâches, plus vos fichiers journaux sont volumineux.

Serveur Web, dossiers dags/, plugins/ et data/

  • Airflow 2 utilise la sérialisation des DAG dès la première utilisation. Le dossier plugins/ est automatiquement synchronisé avec le serveur Web afin que les plug-ins puissent être chargés par l'UI Airflow. Vous ne pouvez pas désactiver la sérialisation des DAG dans Airflow 2.

  • Dans Airflow 1, la sérialisation des DAG est compatible et est activée par défaut dans Cloud Composer.

    • Lorsque la sérialisation des DAG est activée, les fichiers des dossiers dags/ et plugins/ ne sont pas synchronisés avec le serveur Web.
    • Lorsque la sérialisation des DAG est désactivée, les fichiers de dags/ et plugins/ sont synchronisés avec le serveur Web.

Synchronisation des données

Lorsque vous modifiez des DAG ou des plug-ins dans le bucket Cloud Storage, la synchronisation des données sur tous les nœuds du cluster est effectuée.

Cloud Composer synchronise les dossiers dags/ et plugins/ de manière unidirectionnelle en les copiant localement. La synchronisation unidirectionnelle signifie que les modifications locales comprises dans ces dossiers sont remplacées.

Les dossiers data/ et logs/ se synchronisent de manière bidirectionnelle à l'aide de Cloud Storage FUSE.

Différences entre Cloud Composer 1 et Cloud Composer 2

Cloud Composer 1 et Cloud Composer 2 allouent des quantités différentes de processeurs et de mémoire aux composants qui effectuent la synchronisation des données.

Selon votre configuration, la vitesse de synchronisation du contenu pour les dossiers dags/, plugins/ et data/ entre le bucket Cloud Storage et les composants Airflow peut varier si vous comparez Cloud Composer 1 et Cloud Composer 2.

Étapes suivantes