气流异常-任务收到SIGTERM信号

时间:2020-10-15 09:06:26

标签: airflow airflow-operator

我正在使用SSH操作员运行气流任务。我很确定python程序没有错误,并且在我运行它时成功运行。但是,当从气流运行到程序执行结束时,我将遇到SIGTERM错误。

我试图通过研究各种解决方案来弄清楚,但没有任何效果。我尝试增加 从airflow.cfg文件中的60中 killed_task_cleanup_time = 1200 。还尝试在airflow.cfg中将 hostname_callable更改为socket:gethostname ,因为在此错误之前我收到以下警告

Warning: The recorded hostname xxx does not match this instance's hostname

Error:

[2020-10-15 10:45:34,937] {taskinstance.py:954} ERROR - Received SIGTERM. Terminating subprocesses.
[2020-10-15 10:45:34,959] {taskinstance.py:1145} ERROR - SSH operator error: Task received SIGTERM signal
Traceback (most recent call last):
  File "/opt/anaconda3/lib/python3.7/site-packages/airflow/contrib/operators/ssh_operator.py", line 137, in execute
    readq, _, _ = select([channel], [], [], self.timeout)
  File "/opt/anaconda3/lib/python3.7/site-packages/airflow/models/taskinstance.py", line 956, in signal_handler
    raise AirflowException("Task received SIGTERM signal")
airflow.exceptions.AirflowException: Task received SIGTERM signal

任何想法和建议都是有益的。坚持了一天

2 个答案:

答案 0 :(得分:0)

此问题是由以下事实触发的:RECORDED主机名XXX映射的IP地址与实例的主机名映射的IP地址不同,从而引发SIGTERM错误。因此,您需要为记录的主机名XXX指定IP映射。

答案 1 :(得分:0)

这个帖子可能有帮助吗? https://issues.apache.org/jira/browse/AIRFLOW-966

您使用的是哪个版本的气流,您是否检查了 celery 代理设置? 解决方案似乎是将可见性超时设置为高于 celery 默认值(1 小时),以防止 celery 重新提交作业。我相信这只会影响通过手动运行/CLI 创建的任务(通常不是计划任务。)