Cloud Composer 1 Cloud Composer 2
Auf dieser Seite wird beschrieben, welche Daten von Cloud Composer für Ihre Umgebung in Cloud Storage gespeichert werden.
Beim Erstellen einer Umgebung wird von Cloud Composer ein Cloud Storage-Bucket erstellt und Ihrer Umgebung zugeordnet. Der Name des Buckets basiert auf der Umgebungsregion, dem Namen und einer zufälligen ID wie us-central1-b1-6efabcde-bucket
.
Cloud Composer synchronisiert bestimmte Ordner im Bucket Ihrer Umgebung mit Airflow-Komponenten, die in Ihrer Umgebung ausgeführt werden. Wenn Sie beispielsweise eine Datei mit dem Code Ihres Airflow-DAG im Bucket der Umgebung aktualisieren, erhalten die Airflow-Komponenten auch die aktualisierte Version. Cloud Composer verwendet Cloud Storage FUSE für die Synchronisierung.
Ordner im Cloud Storage-Bucket
Ordner | Speicherpfad | Zugeordnetes Verzeichnis | Beschreibung |
---|---|---|---|
DAG | gs://bucket-name/dags |
/home/airflow/gcs/dags |
Speichert die DAGs für Ihre Umgebung. |
Plug‑ins | gs://bucket-name/plugins |
/home/airflow/gcs/plugins |
Speichert Ihre benutzerdefinierten Plug-ins, wie z. B. benutzerdefinierte interne Airflow-Operatoren, Hooks, Sensoren oder Oberflächen. |
Daten | gs://bucket-name/data |
/home/airflow/gcs/data |
Speichert die Daten, die Aufgaben generieren und verwenden. |
Logs | gs://bucket-name/logs |
/home/airflow/gcs/logs |
Speichert die Airflow-Logs für Aufgaben. Logs sind auch in der Airflow-Weboberfläche und auf dem Tab Logs in der Google Cloud Console verfügbar. |
Cloud Composer synchronisiert die Ordner dags/
und plugins/
unidirektional. Unidirektionale Synchronisierung bedeutet, dass lokale Änderungen in diesen Ordnern auf einer Airflow-Komponente überschrieben werden. Die Ordner data/
und logs/
werden bidirektional synchronisiert.
Die Datensynchronisierung ist letztendlich konsistent. Verwenden Sie XComs, um Nachrichten von einem Operator an einen anderen zu senden.
Überlegungen zur Kapazität
Daten aus den Ordnern dags/
, plugins/
und data/
werden mit Airflow-Planern und -Workern synchronisiert.
In Airflow 2 wird der Inhalt des Ordners plugins/
auch mit dem Airflow-Webserver synchronisiert. In Airflow 1 werden die Inhaltsordner dags/
und plugins/
nur dann mit dem Airflow-Webserver synchronisiert, wenn die DAG-Serialisierung deaktiviert ist. Andernfalls wird die Synchronisierung nicht ausgeführt.
Je mehr Daten in diesen Ordnern abgelegt werden, desto mehr Speicherplatz ist im lokalen Speicher der Airflow-Komponenten belegt. Wenn zu viele Daten in dags/
und plugins/
gespeichert werden, kann dies zu Betriebsstörungen und folgenden Problemen führen:
Ein Worker oder Planer hat keinen lokalen Speicher mehr und wird entfernt, weil nicht genügend Speicherplatz auf dem lokalen Laufwerk der Komponente vorhanden ist.
Die Synchronisierung der Dateien aus den Ordnern
dags/
undplugins/
mit Workern und Planern dauert sehr lange.Das Synchronisieren von Dateien aus den Ordnern
dags/
undplugins/
mit Workern und Planern wird unmöglich. Sie speichern beispielsweise eine 2-GB-Datei im Ordnerdags/
, aber das lokale Laufwerk eines Airflow-Workers kann nur 1 GB aufnehmen. Während der Synchronisierung ist der lokale Speicher des Workers aufgebraucht und die Synchronisierung kann nicht abgeschlossen werden.
DAGs und Plug-ins-Ordner
Speichern Sie die DAGs, Plug-ins und Python-Module in den Ordnern dags/
oder plugins/
, um DAG-Ausführungsfehler zu vermeiden, auch wenn die Python-Module keine DAGs oder Plug-ins enthalten.
Sie verwenden beispielsweise einen DataFlowPythonOperator
, der auf eine py_file
-Dataflow-Pipeline verweist. Diese py_file
enthält keine DAGs oder Plug-ins. Sie müssen sie aber trotzdem im Ordner dags/
oder plugins/
speichern.
Datenordner
Es gibt Szenarien, in denen bestimmte Dateien aus dem Ordner data/
mit einer bestimmten Airflow-Komponente synchronisiert werden. Das ist beispielsweise der Fall, wenn Cloud Composer während des folgenden Zeitraums zum ersten Mal versucht, eine bestimmte Datei zu lesen:
DAG-Parsing: Wenn eine Datei beim DAG-Parsing zum ersten Mal gelesen wird, synchronisiert Cloud Composer sie mit dem Planer, der den DAG analysiert.
DAG-Ausführung: Wenn eine Datei während der DAG-Ausführung zum ersten Mal gelesen wird, synchronisiert Cloud Composer sie mit dem Worker, der die Ausführung ausführt.
Airflow-Komponenten haben nur begrenzten lokalen Speicherplatz. Daher sollten Sie heruntergeladene Dateien löschen, um Speicherplatz in Ihren Komponenten freizugeben. Beachten Sie, dass die lokale Speichernutzung auch vorübergehend steigen kann, wenn Sie gleichzeitige Aufgaben haben, die dieselbe Datei auf einen einzelnen Airflow-Worker herunterladen.
Logordner
Der Ordner logs/
wird mithilfe der Cloud Storage API von Airflow-Workern mit dem Bucket der Umgebung synchronisiert.
Das Cloud Storage API-Kontingent wird nach der Menge der verschobenen Daten berechnet. Die Anzahl der Airflow-Aufgaben, die Ihr System ausführt, kann also die Nutzung der Cloud Storage API erhöhen: Je mehr Aufgaben Sie ausführen, desto größer sind die Logdateien.
Synchronisierung mit dem Webserver
Airflow 2 verwendet die DAG-Serialisierung standardmäßig. Der Ordner plugins/
wird automatisch mit dem Webserver synchronisiert, damit Plug-ins über die Airflow-UI geladen werden können. Sie können die DAG-Serialisierung in Airflow 2 nicht deaktivieren.
In Airflow 1 wird die DAG-Serialisierung unterstützt und in Cloud Composer standardmäßig aktiviert.
- Wenn die DAG-Serialisierung aktiviert ist, werden die Dateien aus den Ordnern
dags/
undplugins/
nicht mit dem Webserver synchronisiert. - Wenn die DAG-Serialisierung deaktiviert ist, werden die Dateien aus
dags/
undplugins/
mit dem Webserver synchronisiert.