Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Questa pagina descrive quali dati Cloud Composer archivia per il tuo ambiente in Cloud Storage.
Quando crei un ambiente, Cloud Composer crea un bucket Cloud Storage e lo associa al tuo ambiente. Il nome del bucket si basa sulla regione dell'ambiente, sul nome e su un ID casuale come us-central1-b1-6efabcde-bucket
.
Cloud Composer sincronizza cartelle specifiche del bucket dell'ambiente con i componenti Airflow in esecuzione nell'ambiente. Ad esempio, quando aggiorni un file con il codice del DAG Airflow nel bucket dell'ambiente, anche i componenti Airflow ricevono la versione aggiornata. Cloud Composer utilizza Cloud Storage FUSE per la sincronizzazione.
Cartelle nel bucket Cloud Storage
Cartella | Percorso di archiviazione | Directory mappata | Descrizione |
---|---|---|---|
DAG | gs://bucket-name/dags |
/home/airflow/gcs/dags |
Archivia i DAG per il tuo ambiente. |
Plug-in | gs://bucket-name/plugins |
/home/airflow/gcs/plugins |
Archivia i tuoi plug-in personalizzati, ad esempio operatori, hook, sensori o interfacce Airflow interni personalizzati. |
Dati | gs://bucket-name/data |
/home/airflow/gcs/data |
Archivia i dati prodotti e utilizzati dalle attività. |
Log | gs://bucket-name/logs |
/home/airflow/gcs/logs |
Archivia i log di Airflow per le attività. I log sono disponibili anche nell'interfaccia web di Airflow e nella scheda Log della console Google Cloud. |
Cloud Composer sincronizza le cartelle dags/
e plugins/
in modo unidirezionale. La sincronizzazione unidirezionale significa che le modifiche locali in queste cartelle su un componente Airflow vengono sovrascritte. Le cartelle data/
e logs/
si sincronizzano in modo bidirezionale.
La sincronizzazione dei dati è coerente alla fine. Per inviare messaggi da un operatore a un altro, utilizza XComs.
Considerazioni sulla capacità
I dati delle cartelle dags/
, plugins/
e data/
vengono sincronizzati con gli scheduler e i worker di Airflow.
I contenuti della cartella plugins/
sono sincronizzati con il server web Airflow.
Maggiore è il volume di dati in queste cartelle, maggiore è lo spazio occupato
nell'archiviazione locale dei componenti Airflow. Salvare un numero eccessivo di dati in dags/
e plugins/
può interrompere le operazioni e generare problemi come:
Un worker o uno scheduler esaurisce lo spazio di archiviazione locale e viene rimosso a causa di spazio insufficiente sul disco locale del componente.
La sincronizzazione dei file dalle cartelle
dags/
eplugins/
con worker e pianificatori richiede molto tempo.La sincronizzazione dei file dalle cartelle
dags/
eplugins/
con worker e scheduler diventa impossibile. Ad esempio, archivi un file da 2 GB nella cartelladags/
, ma il disco locale di un worker Airflow può ospitare solo 1 GB. Durante la sincronizzazione, il worker esaurisce lo spazio di archiviazione locale e la sincronizzazione non può essere completata.
Cartelle di DAG e plug-in
Per evitare errori di esecuzione dei DAG, archivia i DAG, i plug-in e i moduli Python nelle cartelle dags/
o plugins/
, anche se i moduli Python non contengono DAG o plug-in.
Ad esempio, utilizzi un DataFlowPythonOperator
che fa riferimento a una
pipeline Dataflow di py_file
. L'elemento py_file
non contiene DAG o
plug-in, ma devi comunque archiviarlo nella cartella dags/
o plugins/
.
Cartella dati
In alcuni casi, alcuni file della cartella data/
vengono sincronizzati con un componente Airflow specifico. Ad esempio, quando Cloud Composer tenta di leggere per la prima volta un determinato file durante:
Analisi dei DAG: quando un file viene letto per la prima volta durante l'analisi dei DAG, Cloud Composer lo sincronizza con lo scheduler che analizza il DAG.
Esecuzione di DAG: quando un file viene letto per la prima volta durante l'esecuzione del DAG, Cloud Composer lo sincronizza con il worker che esegue l'esecuzione.
I componenti Airflow hanno uno spazio di archiviazione locale limitato, quindi valuta la possibilità di eliminare i file scaricati per liberare spazio su disco nei tuoi componenti. Tieni presente che l'utilizzo dello spazio di archiviazione locale può anche aumentare temporaneamente se hai attività simultanee che scaricano lo stesso file in un singolo worker Airflow.
Cartella dei log
La cartella logs/
viene sincronizzata dai worker di Airflow al bucket dell'ambiente utilizzando l'API Cloud Storage.
La quota dell'API Cloud Storage viene calcolata in base alla quantità di dati trasferiti, quindi il numero di attività Airflow eseguite dal sistema può aumentare l'utilizzo dell'API Cloud Storage: più attività esegui, maggiori sono le dimensioni dei file di log.
Sincronizzazione con il server web
La cartella plugins/
viene sincronizzata automaticamente con il server web in modo che
i plug-in possano essere caricati dalla UI di Airflow. In Cloud Composer 3, puoi
disabilitare e abilitare i plug-in dei server web
on demand, senza eliminare i file dal bucket dell'ambiente.