Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Esta página descreve os dados que o Cloud Composer armazena para o seu ambiente no Cloud Storage.
Quando cria um ambiente, o Cloud Composer cria um contentor do Cloud Storage e associa o contentor ao seu ambiente. O nome do contentor baseia-se na região do ambiente, no nome e num ID aleatório, como us-central1-b1-6efabcde-bucket
.
O Cloud Composer sincroniza pastas específicas no contentor do seu ambiente com os componentes do Airflow que são executados no seu ambiente. Por exemplo, quando atualiza um ficheiro com o código do seu DAG do Airflow no contentor do ambiente, os componentes do Airflow também recebem a versão atualizada. O Cloud Composer usa o Cloud Storage FUSE para sincronização.
Pastas no contentor do Cloud Storage
Pasta | Caminho de armazenamento | Diretório mapeado | Descrição |
---|---|---|---|
DAG | gs://bucket-name/dags |
/home/airflow/gcs/dags |
Armazena os DAGs para o seu ambiente. |
Plug-ins | gs://bucket-name/plugins |
/home/airflow/gcs/plugins |
Armazena os seus plug-ins personalizados, como operadores, hooks, sensores ou interfaces do Airflow internos personalizados. |
Dados | gs://bucket-name/data |
/home/airflow/gcs/data |
Armazena os dados que as tarefas produzem e utilizam. |
Registos | gs://bucket-name/logs |
/home/airflow/gcs/logs |
Armazena os registos do Airflow para tarefas. Os registos também estão disponíveis na interface Web do Airflow e no separador Registos na Google Cloud consola. |
O Cloud Composer sincroniza pastas unidirecionalmente: do contentor para os componentes do Airflow. A sincronização unidirecional significa que as alterações locais nestas pastas num componente do Airflow são substituídas.
A sincronização de dados acaba por ser consistente. Para enviar mensagens de um operador para outro, use XComs.
Considerações sobre a capacidade
Os dados das pastas dags/
, plugins/
e data/
são sincronizados com os programadores e os trabalhadores do Airflow.
No Airflow 2, o conteúdo da pasta plugins/
também é sincronizado com o servidor Web do Airflow. No Airflow 1, as pastas dags/
e plugins/
de conteúdo são sincronizadas com o servidor Web do Airflow apenas se a serialização de DAGs estiver desativada. Caso contrário, a sincronização não é realizada.
Quanto mais dados forem colocados nestas pastas, mais espaço é ocupado no armazenamento local dos componentes do Airflow. A poupança de demasiados dados no
dags/
e plugins/
pode interromper as suas operações e originar problemas como:
Um trabalhador ou um programador fica sem armazenamento local e é removido devido a espaço insuficiente no disco local do componente.
A sincronização de ficheiros das pastas
dags/
eplugins/
para os trabalhadores e os programadores demora muito tempo.A sincronização de ficheiros das pastas
dags/
eplugins/
com os trabalhadores e os agendadores torna-se impossível. Por exemplo, armazena um ficheiro de 2 GB na pastadags/
, mas o disco local de um trabalhador do Airflow só pode acomodar 1 GB. Durante a sincronização, o trabalhador fica sem armazenamento local e não é possível concluir a sincronização.
Pastas de DAGs e plug-ins
Para evitar falhas na execução de DAGs, armazene os seus DAGs, plug-ins e módulos Python nas pastas dags/
ou plugins/
, mesmo que os seus módulos Python não contenham DAGs nem plug-ins.
Por exemplo, usa um DataFlowPythonOperator
que faz referência a um pipeline do py_file
Dataflow. Esse ficheiro py_file
não contém DAGs nem plug-ins, mas tem de o armazenar na pasta dags/
ou plugins/
.
Pasta de dados
Existem cenários em que determinados ficheiros da pasta data/
são sincronizados com um componente específico do Airflow. Por exemplo, quando o Cloud Composer tenta ler um determinado ficheiro pela primeira vez durante:
Análise DAG: quando um ficheiro é lido pela primeira vez durante a análise DAG, o Cloud Composer sincroniza-o com o programador que analisa o DAG.
Execução de DAG: quando um ficheiro é lido pela primeira vez durante a execução de DAG, o Cloud Composer sincroniza-o com o trabalhador que está a executar a execução.
Os componentes do Airflow têm armazenamento local limitado, pelo que deve considerar eliminar os ficheiros transferidos para libertar espaço em disco nos seus componentes. Tenha em atenção que a utilização do armazenamento local também pode aumentar temporariamente se tiver tarefas simultâneas que transfiram o mesmo ficheiro para um único trabalhador do Airflow.
Pasta de registos
A pasta logs/
é sincronizada dos trabalhadores do Airflow para o contentor do ambiente através da API Cloud Storage.
A quota da API Cloud Storage é calculada pela quantidade de dados movidos, pelo que o número de tarefas do Airflow que o seu sistema executa pode aumentar a sua utilização da API Cloud Storage: quanto mais tarefas executar, maiores são os seus ficheiros de registo.
Sincronização com o servidor Web
O Airflow 2 usa a serialização de DAGs de imediato. A pasta plugins/
é sincronizada automaticamente com o servidor Web para que os plug-ins possam ser carregados pela IU do Airflow. Não pode desativar a serialização de DAGs no Airflow 2.
No Airflow 1, a serialização de DAGs é suportada e está ativada por predefinição no Cloud Composer.
- Quando a serialização de DAG está ativada, os ficheiros das pastas
dags/
eplugins/
não são sincronizados com o servidor Web. - Quando a serialização de DAG está desativada, os ficheiros de
dags/
eplugins/
são sincronizados com o servidor Web.