Apache Airflow - 工作正常现在说日志文件不是本地错误和异常正在弹出

Posted

技术标签:

【中文标题】Apache Airflow - 工作正常现在说日志文件不是本地错误和异常正在弹出【英文标题】:Apache Airflow - Was Working Fine Now Says Log File Isn't Local Error & Exceptions are Popping Up 【发布时间】:2017-12-16 20:27:59 【问题描述】:

所以看起来我在 Google Compute Engine 实例上安装的 apache 气流出现故障。一切都运行良好,然后两天前所有 DAG 运行显示卡在运行状态。我正在使用 LocalExecutioner。

当我尝试查看日志时出现此错误:

* 日志文件不是本地的。 * 在此处获取:http://:8793/log/collector/aa_main_combined_collector/2017-12-15T09:00:00 *** 无法从 worker 获取日志文件。

我没有触及任何地方的设置。我查看了所有配置文件并扫描了日志,我看到了这个错误

[2017-12-16 20:08:42,558] jobs.py:355 DagFileProcessor0 错误 - 出现异常!传播... 回溯(最近一次通话最后): 帮助程序中的文件“/usr/local/lib/python3.4/dist-packages/airflow/jobs.py”,第 347 行 pickle_dags) 包装器中的文件“/usr/local/lib/python3.4/dist-packages/airflow/utils/db.py”,第 53 行 结果 = func(*args, **kwargs) 文件“/usr/local/lib/python3.4/dist-packages/airflow/jobs.py”,第 1584 行,在 process_file self._process_dags(dagbag,dags,ti_keys_to_schedule) _process_dags 中的文件“/usr/local/lib/python3.4/dist-packages/airflow/jobs.py”,第 1173 行 dag_run = self.create_dag_run(dag) 包装器中的文件“/usr/local/lib/python3.4/dist-packages/airflow/utils/db.py”,第 53 行 结果 = func(*args, **kwargs) 文件“/usr/local/lib/python3.4/dist-packages/airflow/jobs.py”,第 763 行,在 create_dag_run last_scheduled_run = qry.scalar() 标量文件“/usr/local/lib/python3.4/dist-packages/sqlalchemy/orm/query.py”,第 2843 行 ret = self.one() 文件“/usr/local/lib/python3.4/dist-packages/sqlalchemy/orm/query.py”,第 2814 行,合二为一 ret = self.one_or_none() 文件“/usr/local/lib/python3.4/dist-packages/sqlalchemy/orm/query.py”,第 2784 行,位于 one_or_none ret = 列表(自我) iter 中的文件“/usr/local/lib/python3.4/dist-packages/sqlalchemy/orm/query.py”,第 2855 行 返回self._execute_and_instances(上下文) _execute_and_instances 中的文件“/usr/local/lib/python3.4/dist-packages/sqlalchemy/orm/query.py”,第 2878 行 结果 = conn.execute(querycontext.statement, self._params) 文件“/usr/local/lib/python3.4/dist-packages/sqlalchemy/engine/base.py”,第 945 行,在执行 返回方法(自我,多参数,参数) _execute_on_connection 中的文件“/usr/local/lib/python3.4/dist-packages/sqlalchemy/sql/elements.py”,第 263 行 返回连接._execute_clauseelement(自我,多参数,参数) _execute_clauseelement 中的文件“/usr/local/lib/python3.4/dist-packages/sqlalchemy/engine/base.py”,第 1053 行 编译的_sql,蒸馏_参数 _execute_context 中的文件“/usr/local/lib/python3.4/dist-packages/sqlalchemy/engine/base.py”,第 1189 行 语境) _handle_dbapi_exception 中的文件“/usr/local/lib/python3.4/dist-packages/sqlalchemy/engine/base.py”,第 1405 行 util.reraise(*exc_info) 文件“/usr/local/lib/python3.4/dist-packages/sqlalchemy/util/compat.py”,第 187 行,在 reraise 升值 _execute_context 中的文件“/usr/local/lib/python3.4/dist-packages/sqlalchemy/engine/base.py”,第 1182 行 语境) do_execute 中的文件“/usr/local/lib/python3.4/dist-packages/sqlalchemy/engine/default.py”,第 470 行 cursor.execute(语句,参数) 文件“/usr/local/lib/python3.4/dist-packages/airflow/bin/cli.py”,第 69 行,在 sigint_handler 系统退出(0) 系统退出:0

有什么想法吗?

【问题讨论】:

【参考方案1】:

我解决了这个问题,但这样做我发现了另一个问题。

只要我手动启动调度程序,一切都会恢复正常。问题似乎是系统重新启动后调度程序没有正确重新启动。

我有通过 SystemD 运行的调度程序。 Webserver .service 工作正常。但是我确实注意到调度程序 .service 不断重新启动。看来我需要解决一个问题。这部分暂时解决了。

【讨论】:

【参考方案2】:

查看日志URL,验证是否以带有特殊字符+的日期结尾:

&execution_date=2018-02-23T08:00:00+00:00

此问题已修复 here。

您可以将+ 替换为-,或者替换所有特殊字符,就我而言:

&execution_date=2018-02-23T08%3A00%3A00%2B00%3A00

这发生在here。

FileTaskHandler无法从本地磁盘加载日志,尝试从worker加载。

可能导致此错误的另一件事是排除了气流/日志文件夹或其中的子文件夹。

【讨论】:

以上是关于Apache Airflow - 工作正常现在说日志文件不是本地错误和异常正在弹出的主要内容,如果未能解决你的问题,请参考以下文章

Apache Airflow单机/分布式环境搭建

Airbnb Airflow vs Apache Nifi [关闭]

Apache Manged Airflow EMR 操作员 DAG 失败

2022年Docker安装Apache Airflow2.2分布式任务调度框架

2022年Docker安装Apache Airflow2.2分布式任务调度框架

简单的Apache Airflow(CVE-2022-40127)漏洞复现