【问题标题】:Airflow scheduler unexpectedly shuts down气流调度程序意外关闭
【发布时间】:2018-01-08 18:48:19
【问题描述】:

我正在使用 Ubuntu 的 EC2 实例上运行气流 v1.8.0。我运行的各种 DAG 与几个不同的 SQL 表连接。我遇到了一个反复出现的问题,即使用airflow scheduler -D 提出的调度程序只是关闭了我。当我检查airflow-scheduler.err 时没有错误。为了调试,我进入/airflow 目录并使用rm airflow-scheduler* 清除所有与调度程序相关的文件并重新启动守护程序。我正在使用LocalExecutor

两个问题:(1) 发生了什么,我该如何解决? (2) 如果没有快速修复,当调度程序失败时,气流是否至少有办法向我发送电子邮件?

【问题讨论】:

  • 最好将气流放入 Docker 并使用 kubernetes 进行部署,这样您就可以从 liveness probes 中受益。
  • @Chengzhi 说的很有道理,谢谢你的提示!

标签: python-3.x amazon-ec2 airflow apache-airflow airflow-scheduler


【解决方案1】:

关于您的第二个问题,我认为 Airflow 中不存在该问题。我认为无论如何都应该对它进行外部监控,因为如果 Airflow 出现问题,它可能无法通过电子邮件发送给您。

相反,您可以查看SchedulerJob 生成的心跳。我对这个查询进行了一些监控:

SELECT MAX(latest_heartbeat) FROM job WHERE job_type = 'SchedulerJob';

您可以使用它来确保最近触发了调度周期。

我对工作类型 LocalTaskJobGROUP BY hostname 执行相同操作,以确保每个工人都在接工作。

【讨论】:

    【解决方案2】:

    在您的airflow.cfg 中有一个调度程序部分。

    在该部分中,有一条子进程记录的路径:

    [scheduler]
    ...
    child_process_log_directory = /tmp/airflow/scheduler/logs
    

    相关的错误信息可能在此目录的日志中。

    【讨论】:

    • 那个条目是/home/ubuntu/airflow/logs/scheduler。但是,日志与每个 DAG 相关,而不是与调度程序本身相关。您是说我应该在其中一个 DAG 日志中找出导致问题的原因吗?
    • 我会检查与崩溃日期相关的 dag 日志。希望有线索....如果airflow-scheduler.err 中没有线索,airflow-scheduler.out 中可能有线索?最后的建议是尝试不使用-D,并将输出重定向到文件(类似于airflow scheduler &> myfile.txt)。我建议这样做的原因是,当我尝试使用 -D 运行 sched 时,我似乎记得发生了一些奇怪的事情@
    猜你喜欢
    • 1970-01-01
    • 2019-01-20
    • 1970-01-01
    • 1970-01-01
    • 2021-06-20
    • 2023-04-04
    • 2022-01-07
    • 1970-01-01
    相关资源
    最近更新 更多