Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
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 dieses Buckets basiert auf der Umgebungsregion, dem Namen und einer zufälligen ID wie z. B. 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-DAGs im Bucket der Umgebung aktualisieren, 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. Bei einer unidirektionalen Synchronisierung werden lokale Änderungen in diesen Ordnern in einer Airflow-Komponente überschrieben. Die Ordner data/
und logs/
werden bidirektional synchronisiert.
Die Datensynchronisierung unterliegt der Eventual Consistency. 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 den Airflow-Planern und ‑Workern synchronisiert.
Der Inhalt des Ordners plugins/
wird mit dem Airflow-Webserver synchronisiert.
Je mehr Daten in diese Ordner verschoben werden, desto mehr Speicherplatz wird im lokalen Speicher der Airflow-Komponenten belegt. 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:
Ein Worker oder Scheduler hat keinen lokalen Speicherplatz mehr und wird aufgrund von nicht ausreichendem Speicherplatz auf dem lokalen Laufwerk der Komponente entfernt.
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/
, das lokale Laufwerk eines Airflow-Workers kann aber 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“
Speichern Sie zur Vermeidung von Fehlern bei der DAG-Ausführung Ihre DAGs, Plug-ins und Python-Module im Ordner dags/
oder plugins/
. Dies gilt auch dann, wenn die Python-Module keine DAGs oder Plug-ins enthalten.
Angenommen, Sie verwenden eine DataFlowPythonOperator
, die 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.
Ordner „Daten“
Es gibt Szenarien, in denen bestimmte Dateien aus dem Ordner data/
mit einer bestimmten Airflow-Komponente synchronisiert werden. Das kann beispielsweise bei folgenden Aktionen der Fall sein:
DAG-Parsing: Wenn eine Datei beim DAG-Parsing zum ersten Mal gelesen wird, synchronisiert Cloud Composer sie mit dem Scheduler, der den DAG parset.
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 durchfü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 über die Cloud Storage API von Airflow-Workern mit dem Bucket der Umgebung synchronisiert.
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. In Cloud Composer 3 können Sie Webserver-Plug-ins bei Bedarf deaktivieren und aktivieren, ohne Dateien aus dem Bucket der Umgebung zu löschen.