Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
O Cloud Composer sincroniza pastas específicas no contentor do seu ambiente com os componentes do Airflow que são executados no seu ambiente. Consulte o artigo Dados armazenados no Cloud Storage para mais informações. Esta página refere-se a problemas que podem interromper o processo de sincronização e como resolvê-los.
Problemas comuns
As secções seguintes descrevem os sintomas e as potenciais correções para alguns problemas comuns de sincronização de ficheiros.
Processar um grande número de DAGs e plug-ins em pastas de DAGs e plug-ins
Os conteúdos das pastas /dags
e /plugins
são sincronizados do contentor do seu ambiente com os sistemas de ficheiros locais dos trabalhadores e dos programadores do Airflow.
Quanto mais dados forem armazenados nestas pastas, mais tempo demora a fazer a sincronização. Para resolver estas situações:
Limite o número de ficheiros nas pastas
/dags
e/plugins
. Armazene apenas o mínimo de ficheiros necessários.Aumentar o espaço em disco disponível para os programadores e os trabalhadores do Airflow.
Aumente a CPU e a memória dos programadores e dos trabalhadores do Airflow para que a operação de sincronização seja realizada mais rapidamente.
No caso de um número muito elevado de DAGs, divida os DAGs em lotes, comprima-os em arquivos ZIP e implemente estes arquivos na pasta
/dags
. Esta abordagem acelera o processo de sincronização dos DAGs. Os componentes do Airflow extraem arquivos ZIP antes de processar DAGs.A geração de DAGs de forma programática também pode ser um método para limitar o número de ficheiros DAG armazenados na pasta
/dags
. Consulte a secção DAGs programáticos na página de resolução de problemas de DAGs para evitar problemas com o agendamento e a execução de DAGs gerados de forma programática.
Padrões negativos que afetam a sincronização de DAGs e plug-ins com programadores, trabalhadores e servidores Web
O Cloud Composer sincroniza o conteúdo das pastas /dags
e /plugins
com os programadores e os trabalhadores. Determinados objetos nas pastas /dags
e /plugins
podem impedir que esta sincronização funcione corretamente ou torná-la mais lenta.
A pasta
/dags
é sincronizada com os programadores e as trabalhadoras.Esta pasta não está sincronizada com o servidor Web.
A pasta
/plugins
é sincronizada com os programadores, os trabalhadores e os servidores Web.
Pode deparar-se com os seguintes problemas:
Carregou ficheiros comprimidos com gzip que usam a [transcodificação de compressão][storage-transcoding] para as pastas
/dags
e/plugins
. Normalmente, isto acontece se usar a flag--gzip-local-all
num comandogcloud storage cp
para carregar dados para o contentor.Solução: elimine o objeto que usou a transcodificação de compressão e carregue-o novamente para o contentor.
Um dos objetos tem o nome ".". Este objeto não é sincronizado com os programadores e os trabalhadores, e pode parar de ser sincronizado completamente.
Solução: mude o nome do objeto.
Uma pasta e um ficheiro Python DAG têm os mesmos nomes, por exemplo,
a.py
. Neste caso, o ficheiro DAG não está sincronizado corretamente com os componentes do Airflow.Solução: remova a pasta que tem o mesmo nome que o ficheiro Python DAG.
Um dos objetos nas pastas
/dags
ou/plugins
contém um símbolo/
no final do nome do objeto. Estes objetos podem interferir com o processo de sincronização porque o símbolo/
significa que um objeto é uma pasta e não um ficheiro.Solução: remova o símbolo
/
do nome do objeto problemático.Não armazene ficheiros desnecessários nas pastas
/dags
e/plugins
.Por vezes, os DAGs e os plug-ins que implementa incluem ficheiros adicionais, como ficheiros que armazenam testes para estes componentes. Estes ficheiros são sincronizados com as trabalhadoras e os programadores, e afetam o tempo necessário para copiar estes ficheiros para os programadores, as trabalhadoras e os servidores Web.
Solução: não armazene ficheiros adicionais e desnecessários nas pastas
/dags
e/plugins
.
O erro Done [Errno 21] Is a directory: '/home/airflow/gcs/dags/...' é gerado por agendadores e trabalhadores
Este problema ocorre porque os objetos podem ter um espaço de nomes sobreposto no Cloud Storage, enquanto os programadores e os trabalhadores usam sistemas de ficheiros Linux convencionais. Por exemplo, é possível adicionar uma pasta e um objeto com o mesmo nome ao contentor de um ambiente. Quando o contentor é sincronizado com os programadores e os trabalhadores do ambiente, este erro é gerado, o que pode levar a falhas de tarefas.
Para corrigir este problema, certifique-se de que não existem espaços de nomes sobrepostos no contentor do ambiente. Por exemplo, se /dags/misc
(um ficheiro) e /dags/misc/example_file.txt
(outro ficheiro) estiverem num contentor, o agendador gera um erro.
O que se segue?
- Resolução de problemas do processador DAG
- Resolução de problemas do agendador do Airflow
- Resolução de problemas de DAGs