Cloud Composer任务无故失败或没有日志

时间:2019-01-21 09:42:36

标签: google-cloud-platform airflow google-cloud-composer

我在受管理的Airflow(版本1.9.0)中运行Cloud-composer environment,而在Kubernetes 1.10.9-gke.5集群上运行。

我的所有DAG每天在3:00 AM或4:00 AM运行。但是在早晨的某个时候,我看到一些任务在夜间无故失败。

  • 使用UI检查日志时-在GCS存储桶enter image description here

  • 中检查日志文件夹时,我看不到日志,也看不到日志
  • 在实例详细信息中,其读取为“从计划中阻止依赖项”,但依赖项是dagrun本身。 enter image description here

  • 尽管DAG设置有5次重试和一封电子邮件,但看起来好像没有进行任何重试,而且我还没有收到有关失败的电子邮件。

  • 我通常只是清除任务实例,并且它在第一次尝试时就可以成功运行。

有人遇到过类似的问题吗?

1 个答案:

答案 0 :(得分:3)

空日志通常意味着Airflow工作人员容器被逐出(即它在将日志刷新到GCS之前就死了),这通常是由于内存不足而导致的。如果您转到GKE集群(位于Composer幕后的集群),则可能会看到确实有一个被驱逐的吊舱(GKE>工作负载>“ airflow-worker”)。

您可能会在“任务实例”中看到,这些任务没有分配Start DateJob Id或工作人员(Hostname),并且没有添加任何日志,就可以证明吊舱的死亡。

由于这种情况通常发生在高度并行的DAG中,因此避免这种情况的一种方法是减少工作人员的并发性或使用更好的机器。

编辑:我已经代表您提交了此Feature Request,以防失败时可以收到电子邮件,即使吊舱被逐出了。