我在一个带有Ubuntu的EC2实例上运行airflow v1.8.0。我运行的各种DAG与几个不同的SQL表连接。我有一个反复出现的问题,由airflow scheduler -D引发的调度程序对我关闭了。当我检查airflow-scheduler.err时,没有错误。为了进行调试,我进入/airflow目录,使用rm airflow-scheduler*清除所有与调度程序相关的文件,然后重新启动守护进程。我正在使用LocalExecutor。
两个问题:(1)发生了什么,我如何解决它?(2)如果没有快速解决方案,是否至少有一种方法让airflow在调度程序失败时给我发一封电子邮件?
发布于 2018-01-09 06:55:26
关于你的第二个问题,我不认为它存在于气流中。我认为无论如何都应该对它进行外部监控,因为如果Airflow出现问题,可能无法向您发送电子邮件。
相反,您可以查看SchedulerJob生成的心跳。我对这个查询进行了一些监控:
SELECT MAX(latest_heartbeat) FROM job WHERE job_type = 'SchedulerJob';您可以使用它来确保最近触发了一个调度周期。
我使用GROUP BY hostname对作业类型LocalTaskJob执行相同的操作,以确保每个工作人员都在处理工作。
发布于 2018-01-09 02:56:53
在您的airflow.cfg中有一个用于调度程序的部分。
在该部分中有一个子进程记录的路径:
[scheduler]
...
child_process_log_directory = /tmp/airflow/scheduler/logs相关的错误消息可能在此目录的日志中。
https://stackoverflow.com/questions/48156362
复制相似问题