【问题标题】:Airflow Exception - Task received SIGTERM signal气流异常 - 任务收到 SIGTERM 信号
【发布时间】:2021-01-29 17:47:22
【问题描述】:

我正在使用 SSH 运算符运行气流任务。我很确定python程序没有错误并且在我运行它时成功运行。但是当从气流运行到程序执行结束时,我最终会出现 SIGTERM 错误。

我试图通过研究各种解决方案来弄清楚,但没有任何效果。我尝试增加 killed_task_cleanup_time = 1200 来自气流.cfg 文件中的 60。还尝试在气流.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

任何想法和建议都很有帮助。坚持了一天

【问题讨论】:

  • 请显示您的代码和完整的执行日志。

标签: airflow


【解决方案1】:

这个问题是由于 RECORDED 主机名 XXX 映射的 IP 地址与实例的主机名映射的 IP 地址不同,从而引发 SIGTERM 错误。所以需要为记录的Hostname XXX指定IP映射

【讨论】:

  • 如何为记录的主机名指定 IP 映射?请在答案中写出解决方案,而不是提示!
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2021-01-07
    • 2021-11-23
    • 1970-01-01
    • 1970-01-01
    • 2013-06-05
    • 2022-10-07
    • 2018-04-28
    • 1970-01-01
    • 2021-11-30
    相关资源
    最近更新 更多