Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Auf dieser Seite wird beschrieben, welche Daten in Cloud Composer für Ihre Umgebung gespeichert werden in Cloud Storage.
Beim Erstellen einer Umgebung wird von Cloud Composer ein Cloud Storage-Bucket erstellt und Ihrer Umgebung zugeordnet. Der Name des Buckets basiert auf der Umgebung
Region, Name und eine zufällige ID wie us-central1-b1-6efabcde-bucket
.
Cloud Composer synchronisiert bestimmte Ordner in mit den Airflow-Komponenten in Ihrer Umgebung zu. Wenn Sie beispielsweise eine Datei mit dem Code Ihres Airflow-DAG in der Bucket der Umgebung erhalten auch die Airflow-Komponenten 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
einer Airflow-Komponente überschrieben. data/
und logs/
Ordner bidirektional synchronisiert werden.
Die Datensynchronisierung unterliegt der Eventual Consistency. Nachrichten senden von einem Operator zum anderen, Verwenden Sie XComs.
Überlegungen zur Kapazität
Daten aus den Ordnern dags/
, plugins/
und data/
werden mit Airflow synchronisiert
Planer und Worker.
In Airflow 2 wird der Inhalt des Ordners plugins/
auch mit dem
Airflow-Webserver. In Airflow 1: die Inhaltsordner dags/
und plugins/
wird 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 gespeichert werden, desto mehr Speicherplatz wird belegt
im lokalen Speicher der Airflow-Komponenten. Es werden zu viele Daten
dags/
und plugins/
können Ihren Betrieb stören und unter anderem zu folgenden Problemen führen:
Einem Worker oder Planer geht der lokale Speicher aus und er wird entfernt, weil nicht genügend Speicherplatz auf der lokalen Festplatte der Komponente.
Synchronisierung von Dateien aus den Ordnern
dags/
undplugins/
mit Workern und Planer sehr zeitaufwändig.Dateien aus den Ordnern
dags/
undplugins/
mit Workern und wird es unmöglich. Beispiel: Sie speichern eine 2-GB-Datei imdags/
-Ordner, aber das lokale Laufwerk eines Airflow-Workers kann nur Platz für 1 GB. Während der Synchronisierung sind die lokalen Ressourcen des Workers aufgebraucht Speicher und Synchronisierung können nicht abgeschlossen werden.
Ordner für DAGs und Plug-ins
Um Fehler bei der DAG-Ausführung zu vermeiden, speichern Sie Ihre DAGs, Plug-ins und Python-Module im
dags/
- oder plugins/
-Ordner, auch wenn die Python-Module keine DAGs enthalten
oder Plug-ins.
Du verwendest beispielsweise ein DataFlowPythonOperator
, das auf ein py_file
verweist.
Dataflow-Pipeline Dass py_file
keine DAGs oder
Plug-ins, müssen aber im Ordner dags/
oder plugins/
gespeichert werden.
Datenordner
Es kann vorkommen, dass bestimmte Dateien aus dem Ordner data/
mit einer bestimmten Airflow-Komponente synchronisiert. Wenn beispielsweise
Während der folgenden Phasen versucht Cloud Composer, eine bestimmte Datei zum ersten Mal zu lesen:
DAG-Parsing: Wenn eine Datei zum ersten Mal während des DAG-Parsings gelesen wird, Cloud Composer synchronisiert ihn mit dem Planer, der den DAG parst.
DAG-Ausführung: Wenn eine Datei zum ersten Mal während der DAG-Ausführung gelesen wird, Cloud Composer synchronisiert ihn mit dem Worker, der die Ausführung ausführt.
Der lokale Speicher von Airflow-Komponenten ist begrenzt. Löschen Sie daher diese Komponenten. um Speicherplatz in den Komponenten freizugeben. Beachten Sie, dass lokale Die Speichernutzung kann auch vorübergehend steigen, wenn gleichzeitige Aufgaben dieselbe Datei auf einen einzelnen Airflow-Worker herunterladen.
Logordner
Der Ordner logs/
wird von Airflow-Workern mit dem der Umgebung
mit der Cloud Storage API erstellen.
Das Cloud Storage API-Kontingent wird auf der Grundlage der verschobenen Daten berechnet, Die Anzahl der Airflow-Aufgaben, die Ihr System ausführt, kann steigen Ihre Cloud Storage API-Nutzung: Je mehr Aufgaben Sie ausführen, desto größer ist Ihr Log. -Dateien.
Synchronisierung mit dem Webserver
In Airflow 2 wird standardmäßig die DAG-Serialisierung verwendet. Der Ordner „plugins/
“
automatisch mit dem Webserver synchronisiert, sodass Plug-ins durch
Airflow-UI Sie können die DAG-Serialisierung in Airflow 2 nicht deaktivieren.
In Airflow 1 wird die DAG-Serialisierung unterstützt und ist standardmäßig in Cloud Composer
- Wenn die DAG-Serialisierung aktiviert ist, werden die Dateien aus
dags/
undplugins/
Ordner nicht mit dem Webserver synchronisiert werden. - Wenn die DAG-Serialisierung deaktiviert ist, werden die Dateien aus
dags/
undplugins/
mit dem Webserver synchronisiert.