Cloud Composer 1 | Cloud Composer 2
Nesta página, você vê quais dados do ambiente são armazenados pelo Cloud Composer no Cloud Storage.
Quando você cria um ambiente, um bucket do Cloud Storage gerado pelo Cloud Composer é associado a ele. O nome do bucket é baseado na região do ambiente, no nome e em um ID aleatório, como us-central1-b1-6efannnn-bucket
.
O Cloud Composer espera o código-fonte dos fluxos de trabalho (DAGs) e as dependências deles em pastas específicas no Cloud Storage. Ele usa o Cloud Storage FUSE para associar as pastas aos componentes do Airflow no ambiente do Cloud Composer.
Pastas no bucket do Cloud Storage
Pasta | Caminho de armazenamento | Diretório mapeado | Descrição |
---|---|---|---|
DAG | gs://bucket-name/dags |
/home/airflow/gcs/dags |
Armazena os DAGs do ambiente. Somente os DAGs dessa pasta são programados no ambiente. |
Plug-ins | gs://bucket-name/plugins |
/home/airflow/gcs/plugins |
Armazena os plug-ins personalizados, como interfaces, sensores, hooks e operadores internos do Airflow. |
Dados | gs://bucket-name/data |
/home/airflow/gcs/data |
Armazena os dados gerados e usados pelas tarefas. Essa pasta é ativada em todos os nós de worker. |
Registros | gs://bucket-name/logs |
Armazena os registros de tarefas do Airflow. Os registros também estão disponíveis na interface da Web do Airflow e na guia "Registros" na interface do Cloud Composer. |
Observações sobre capacidade
Dados das pastas dags/
, plugins/
e data/
são sincronizados com os programadores e os workers do Airflow.
No Airflow 2, o conteúdo da pasta
plugins/
também é sincronizado com o servidor da Web do Airflow.No Airflow 1, as pastas de conteúdo
dags/
eplugins/
serão sincronizadas com o servidor da Web do Airflow somente se a serialização do DAG estiver desativada. Caso contrário, a sincronização não será realizada.
Quanto mais dados são colocados nessas pastas, mais espaço é ocupado no armazenamento local dos componentes do Airflow.
Salvar muitos dados em dags/
e plugins/
pode interromper suas operações
e levar a problemas como estes:
um worker ou um programador fica sem armazenamento local e é removido devido a espaço insuficiente no disco local do componente;
A sincronização de arquivos das pastas
dags/
eplugins/
com workers e programadores leva muito tempo.A sincronização de arquivos das pastas
dags/
eplugins/
com workers e programadores se torna impossível. Por exemplo, você armazena um arquivo de 2 GB na pastadags/
, mas o disco local do componente só pode acomodar 1 GB. Durante a sincronização, o componente fica sem armazenamento local, e a sincronização não pode ser concluída.
DAGs e plug-ins
Para evitar falhas no fluxo de trabalho, armazene os DAGs, plug-ins e módulos do Python nas pastas dags/
ou plugins/
, mesmo que os módulos do Python não contenham DAGs ou plug-ins.
Por exemplo, você usa um DataFlowPythonOperator
que
faz referência a um pipeline py_file
do Dataflow. Esse py_file
não contém DAGs ou plug-ins, mas você ainda precisa armazená-lo
na pasta dags/
ou plugins/
.
Dados
Há cenários em que determinados arquivos da pasta data/
são sincronizados com um componente específico do Airflow.
Por exemplo, quando o Cloud Composer tenta ler um determinado arquivo pela primeira vez durante:
Análise do DAG Quando um arquivo é lido pela primeira vez durante a análise do DAG, o Cloud Composer o sincroniza com o programador que o analisa.
Execução do DAG Quando um arquivo é lido pela primeira vez durante a execução do DAG, o Cloud Composer o sincroniza com o worker que está executando a execução.
Os componentes do Airflow têm armazenamento local limitado. Por isso, considere excluir arquivos transferidos por download para liberar espaço em disco nos seus componentes. Observe que o uso do armazenamento local também pode aumentar temporariamente se você tiver tarefas simultâneas que façam o download do mesmo arquivo em um único worker do Airflow.
Registros
A pasta logs/
é sincronizada dos workers do Airflow
com o bucket usando a API Cloud Storage.
A cota da API Cloud Storage é calculada pela quantidade de dados movidos. Portanto, o número de tarefas do Airflow que seu sistema executa pode aumentar o uso da API Cloud Storage: quanto mais tarefas você executa, maiores são os arquivos de registros.
Servidor da Web, pastas dags/
, plugins/
e data/
O Airflow 2 usa a serialização do DAG pronta para uso. A pasta
plugins/
é sincronizada automaticamente com o Webserver para que os plug-ins possam ser carregados pela IU do Airflow. Não é possível desativar a serialização do DAG no Airflow 2.No Airflow 1, a serialização do DAG é compatível e é ativada por padrão no Cloud Composer.
- Quando a serialização do DAG está ativada, os arquivos das pastas
dags/
eplugins/
não são sincronizados com o servidor da Web. - Quando a serialização do DAG é desativada, os arquivos de
dags/
eplugins/
são sincronizados com o servidor da Web.
- Quando a serialização do DAG está ativada, os arquivos das pastas
Sincronização de dados
Ao modificar DAGs ou plug-ins no bucket do Cloud Storage, os dados são sincronizados em todos os nós no cluster.
O Cloud Composer sincroniza as pastas dags/
e plugins/
unidirecionalmente, fazendo uma cópia local. A sincronização unidirecional significa que as alterações locais nessas pastas são substituídas.
As pastas data/
e logs/
são sincronizadas bidirecionalmente usando o Cloud Storage FUSE.
Diferenças entre o Cloud Composer 1 e o Cloud Composer 2
O Cloud Composer 1 e o Cloud Composer 2 alocam diferentes quantidades de CPU e memória para os componentes que realizam a sincronização de dados.
Dependendo da sua configuração, a velocidade da sincronização de conteúdo para pastas dags/
, plugins/
e data/
entre o bucket do Cloud Storage e os componentes do Airflow poderá ser diferente se você comparar o Cloud Composer 1 e o Cloud Composer 2.