Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Auf dieser Seite wird erläutert, 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 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 Protokolle 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.
Der Inhalt des Ordners plugins/
wird mit dem Airflow-Webserver synchronisiert.
Je mehr Daten in diesen Ordnern gespeichert werden, desto mehr Speicherplatz wird belegt
im lokalen Speicher der Airflow-Komponenten. Wenn Sie zu viele Daten in dags/
und plugins/
speichern, kann das zu Unterbrechungen Ihrer Abläufe und zu Problemen wie den folgenden 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.
Die Synchronisierung von Dateien aus den Ordnern
dags/
undplugins/
mit Workern und Schedulern dauert sehr lange.Die Synchronisierung von Dateien aus den Ordnern
dags/
undplugins/
mit Workern und Planern ist nicht mehr möglich. Angenommen, Sie speichern 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.
Ordner „DAGs“ und „Plug-ins“
Um Fehler bei der DAG-Ausführung zu vermeiden, speichern Sie Ihre DAGs, Plug-ins und Python-Module in der
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 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. 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.
Airflow-Komponenten haben nur begrenzten lokalen Speicherplatz. Sie sollten daher heruntergeladene Dateien löschen, um Speicherplatz in Ihren Komponenten freizugeben. Die Nutzung des lokalen Speichers kann auch vorübergehend steigen, wenn Sie gleichzeitige Aufgaben haben, die dieselbe Datei auf einen einzelnen Airflow-Worker herunterladen.
Ordner „Protokolle“
Der Ordner logs/
wird von Airflow-Workern mit dem der Umgebung
mit der Cloud Storage API erstellen.
Das Cloud Storage API-Kontingent wird anhand der Menge der verschobenen Daten berechnet. Die Anzahl der Airflow-Aufgaben, die auf Ihrem System ausgeführt werden, kann die Nutzung der Cloud Storage API erhöhen: Je mehr Aufgaben Sie ausführen, desto größer sind Ihre Protokolldateien.
Synchronisierung mit dem Webserver
Der Ordner plugins/
wird automatisch mit dem Webserver synchronisiert, damit Plugins über die Airflow-Benutzeroberfläche geladen werden können.