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

时间:2017-12-16 20:27:59

标签: apache-airflow

所以看起来我在Google Compute Engine实例上安装apache airflow时崩溃了。一切都运行良好,然后两天前所有DAG运行都显示卡在运行状态。我正在使用LocalExecutioner。

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

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

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

[2017-12-16 20:08:42,558] {jobs.py:355} DagFileProcessor0错误 - 有异常!传播... Traceback(最近一次调用最后一次):   文件" /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行,在包装器中     result = 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)   文件" /usr/local/lib/python3.4/dist-packages/airflow/jobs.py",第1173行,在_process_dags中     dag_run = self.create_dag_run(dag)   文件" /usr/local/lib/python3.4/dist-packages/airflow/utils/db.py" ;,第53行,在包装器中     result = 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 = list(self)   文件" /usr/local/lib/python3.4/dist-packages/sqlalchemy/orm/query.py",第2855行, iter     return self._execute_and_instances(context)   文件" /usr/local/lib/python3.4/dist-packages/sqlalchemy/orm/query.py",第2878行,在_execute_and_instances中     result = conn.execute(querycontext.statement,self._params)   文件" /usr/local/lib/python3.4/dist-packages/sqlalchemy/engine/base.py" ;,第945行,执行     return meth(self,multiparams,params)   文件" /usr/local/lib/python3.4/dist-packages/sqlalchemy/sql/elements.py",第263行,在_execute_on_connection中     return connection._execute_clauseelement(self,multiparams,params)   文件" /usr/local/lib/python3.4/dist-packages/sqlalchemy/engine/base.py",第1053行,在_execute_clauseelement中     compiled_sql,distilled_pa​​rams   文件" /usr/local/lib/python3.4/dist-packages/sqlalchemy/engine/base.py",第1189行,在_execute_context中     上下文)   文件" /usr/local/lib/python3.4/dist-packages/sqlalchemy/engine/base.py" ;,第1405行,在_handle_dbapi_exception中     util.reraise(* exc_info)   文件" /usr/local/lib/python3.4/dist-packages/sqlalchemy/util/compat.py" ;,第187行,重新加入     提高价值   文件" /usr/local/lib/python3.4/dist-packages/sqlalchemy/engine/base.py",第1182行,在_execute_context中     上下文)   文件" /usr/local/lib/python3.4/dist-packages/sqlalchemy/engine/default.py" ;,第470行,在do_execute中     cursor.execute(语句,参数)   文件" /usr/local/lib/python3.4/dist-packages/airflow/bin/cli.py",第69行,sigint_handler     sys.exit(0) SystemExit:0

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

我解决了这个问题但是我发现了另一个问题。

一旦我手动启动调度程序,它的长短不一样,一切都恢复了。问题似乎是系统重启后调度程序没有正确重启。

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

答案 1 :(得分:0)

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

  

&安培; execution_date = 2018-02-23T08:00:00 + 00:00

这是固定的here

在我的情况下,您可以替换+的{​​{1}},或替换所有特殊字符:

  

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

这种情况发生here

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

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