这让我疯了。
我在云环境中设置气流。我有一台服务器运行调度程序和Web服务器,一台服务器作为芹菜工作者,我使用的是气流1.8.0。
正在运行的工作正常。 拒绝工作的是记录。
我在两台服务器上的airflow.cfg中设置了正确的路径:
remote_base_log_folder = s3:// my-bucket / airflow_logs /
remote_log_conn_id = s3_logging_conn
我已在气流用户界面中设置了s3_logging_conn,其中包含访问密钥和密码,如here所述。
我使用
检查了连接s3 = airflow.hooks.S3Hook(' s3_logging_conn')
s3.load_string('测试''测试',BUCKET_NAME ='我的斗&#39)
这两个服务器上的工作。因此,正确设置了连接。然而,每当我执行任务时,我得到的只是
***日志文件不是本地的。
***在这里取得:http:// *******
***无法从工作人员获取日志文件。
***阅读远程日志......
无法从s3:// my-bucket / airflow_logs / my-dag / my-task / 2018-02-15T21:46:47.577537
中读取日志
我尝试按照预期的惯例手动上传日志,而网络服务器仍然无法提取 - 所以问题出在两端。我不知道该做什么,到目前为止我所读到的一切都告诉我应该正在工作。我接近安装1.9.0,我听到更改日志记录,看看我是否更幸运。
更新:我对Airflow 1.9进行了全新安装,并按照具体说明进行了here。
Webserver甚至无法启动,但出现以下错误:
airflow.exceptions.AirflowConfigException:在配置中找不到section / key [core / remote_logging]
是this config template中对此部分的明确引用。
所以我尝试删除它,只是加载S3处理程序而不先检查,而是收到以下错误消息:
无法加载配置,包含配置错误。
追踪(最近一次呼叫最后一次):
文件" /usr/lib64/python3.6/logging/config.py",第384行,已解决:
self.importer(使用)的
ModuleNotFoundError:没有名为
的模块' airflow.utils.log.logging_mixin.RedirectStdHandler&#39 ;;
' airflow.utils.log.logging_mixin'不是包
我觉得这不应该这个很难。
任何帮助都会非常感激,欢呼声
答案 0 :(得分:2)
解决了:
加入
[芯]
remote_logging = True
to airflow.cfg
pip install --upgrade airflow [log]
现在一切正常。